none
Net Use Fehler Abfangen bei Falschem Passwort RRS feed

  • Frage

  • Hallo,

    ich weiß nicht ob ich hier Richtig bin.

    Ich nutze Net Use um ein Gerät mit einer Windows Freigabe zu verbinden. Der Net Use wird aus einer Application heraus genutzt. Soweit klappt das auch. wenn jetzt das Passwort falsch ist oder geändert wurde kommt ein Pop Up mit der Aufforderung das Richtige Passwort einzugeben. Wenn ich es hier eingebe Klappt das auch nur die Application bekommt das neue Passwort nicht mit und verwendet beim nächsten Starten das alte. Alle Fehlerrückgaben von NetUse kann ich abfangen und auswerten. Wie verhindere ich das dieses Fenster kommt und die Software bescheid weiß und den Nutzer auffordert es in der Software zu ändern? Wenn ich das Fenster mit ESC schließe bekomme ich die Infos.

    Das Zielsystem ist ein Windows7 Rechner und das Gerät läuft auf Windows CE 6.0

    Für Hilfe währe ich dankbar auch wenn sie nicht speziell für WindowsCE ist.

    Vielen Dank

    Dienstag, 11. Dezember 2018 14:31

Alle Antworten

  • Ohne unhöflich oder abweisend sein zu wollen, aber das hier ist das Powershell Forum. Hat Deine Frage irgendetwas mit Powershell zu tun? Falls nicht, ist sie vermutlich besser im allgemeinen Windows 7 Forum oder besser noch im Hersteller-Forum der benutzten Applikation aufgehoben.

    Sollte doch Powershell involviert sein, wäre es bestimmt zielführend, den benutzten Code zu sehen.  ;-)


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Dienstag, 11. Dezember 2018 16:02
  • Hallo,

    an Abweisungen habe ich mich als WindowsCE Nutzer schon gewöhnt. Ich glaube nicht das das Windows7 des Zielrechners das Problem ist. An den Hersteller der Applikation kann ich mich nicht wenden der bin ich selbst.

    Die Shell sehe ich involviert da ich zum Mappen der Freigabe NetUse verwende und das per CreateProcess aus C++ her aufrufe und die Rückgabe in eine Datei Umleite um sie im Anschluss auf Fehlercodes zu Durchsuchen.

    \Windows\net use network_share \\PC_Name\Freigabe /user:Muster.Mann /password:qwertz

    Der C++ Code ist folgender. Die Connect Line wird weiter oben zusammengestellt. Im Endeffekt Resultiert oben genannter Net Use Befehl daraus. Das Ergebnis ob ich den Befehl per Software oder Konsole eingebe ist das gleiche.

    start_std_error_log();
    		DWORD error;
    		//PROCESS_INFORMATION ProcessInfo;
    		//STARTUPINFO StartupInfo;
    		ZeroMemory(&StartupInfo, sizeof(StartupInfo));
    		StartupInfo.cb = sizeof StartupInfo ;
    		
    		//StartupInfo.hStdOutput=my_output;
    		if(!CreateProcess(_T("\\Windows\\net"), connect_line,
    		//if(CreateProcess(_T("net use"), connect_line.GetString(),
    			NULL,NULL,FALSE,0,NULL,
    			NULL,&StartupInfo,&ProcessInfo))
    		{
    			error=GetLastError();
    		}
    		
    			WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
    			CError net_error=end_std_error_log();
    			error++;
    			if(net_error==0)
    			{
    				_my_share_state=share_connect;
    			}
    			else
    			{
    				switch (net_error.code)
    				{
    				//case :
    				//	break;
    				default:
    					_my_share_state=share_connetion_faild;
    					break;
    				}
    
    				return net_error;
    			}
    			
    	}

    Mittwoch, 12. Dezember 2018 07:54
  • Hmmm ...  ich kann natürlich nicht für andere sprechen und es könnte auch trotzdem möglich sein, dass Du hier doch noch jemanden findest, der Dir bei diesem speziellen Problem helfen kann, aber ich bin da doch eher skeptisch. Es geht hier quasi ausschließlich um Powershell. ;-)

    Net.exe ist ein Windows System Tool - das gehört meiner Meinung nach eher ins generelle Windows Forum. Oder vielleicht eins für Windows CE - wenn es denn so etwas gibt.

    Meiner Erfahrung nach sind Menschen, die sich mit Powershell beschäftigen auch eher Administratoren als Programmierer. Ich könnte mir vorstellen, dass Du bei StackOverflow auch eine bessere Chance auf mehr und bessere Hilfe/Antworten hast.

    Nur ne Idee - ich bin auch kein Programmierer - wenn Du sowieso die komplette Kontrolle über den Code hast, wäre es nicht möglich, den Zugriff auf die entsprechenden Recourcen per UNC-Pfad zu realisieren - also ohne net use?

    Ich drück Dir die Daumen. ;-)

    Ciao


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Mittwoch, 12. Dezember 2018 09:00
  • Die Shell sehe ich involviert da ich zum Mappen der Freigabe NetUse verwende und das per CreateProcess aus C++ her

    Und warum verwendest Du CreateProcess? Ich würde mal hier einsteigen: https://docs.microsoft.com/en-us/windows/desktop/api/lmuse/nf-lmuse-netuseadd

    Oder gibt es das API unter CE nicht?


    Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq

    Mittwoch, 12. Dezember 2018 16:40
  • (79,108,97,102|%{[char]$_})-join''

    Olaf, bei Antworten solltest Du immer über das Webinterface gehen und nicht über die NNTP-Bridge. Sonst erscheint Deine Antwort im Webinterface erst dann, wenn - ebenfalls im Webinterface - jemand einen neuen Post erstellt.

    Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq

    Mittwoch, 12. Dezember 2018 16:42
  • Das Problem bei UNC-Pfaden ist, dass ich beim Zugriff keine Anmeldedaten mitgeben kann und dann auch halt ein Popup-Fenster für die Anmeldung hochkommt, wenn der aktuelle User keine Berechtigung für den Pfad hat.
    Im Batch (unbeaufsichtigte task) geht das erst recht nicht, da hier keiner Popup's sehen kann.

    Da Popup's Windows-Fenster sind, wirkt keine Umleitung von STDOUT oder STDERR.

    Versuche mal eher per Power-Shell und "new-psdrive" zuzugreifen:

    https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-psdrive?view=powershell-6

    Ohne den Parameter -confirm sollte kein Popup kommen.

    Mittels get-credential kannst du dann User/Kennwort übergeben können und dann halt ohne prompt per try/catch den Fehler bekommen.
    https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/get-credential?view=powershell-6

    Mittwoch, 12. Dezember 2018 17:06
  • PowerShell auf WinCE möchte ich mal sehen ;-)

    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Mittwoch, 12. Dezember 2018 17:29
  • Martin, ich hab die NNTP-Bridge noch nie benutzt.  ;-)  ... ich weiß nicht mal, wie das geht.  :-o

    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Mittwoch, 12. Dezember 2018 17:43
  • ... , wenn der aktuelle User keine Berechtigung für den Pfad hat.

    ... na dann muss er die nötige Berechtigung bekommen, wenn er darauf zugreifen soll!!  :-|

    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Mittwoch, 12. Dezember 2018 17:45
  • Noch mal zurück zu obiger Anfrage:

    Entweder ein User ist berechtigt für das Share oder nicht.
    Wenn er berechtigt ist, regelt i.d.R. AD die Synchronisation bei Kennwortwechsel.
    Der User meldet sich an und kann auf alle berechtigten UNC-Pfade zugreifen ohne dass er sich erneut anmelden muss.

    Wenn es ein Laufwerk sein muss, kann man dies per GPO bereits mappen. Somit ist auch hier keine weitere Anmeldung erforderlich.

    Wo also ist den eigentliches Problem?

    Eine Anwendung sollte nicht das Recht haben, sich selber per Net Use zu verbinden. Das Recht hat eigentlich der User der die Anwendung eben anwendet;-).
    Der Anwendung teilt man den Pfad mit und gut ist, für den Rest ist der User zuständig.

    Z.B. den Speicherorten in Excel gebe ich ja auch keine Kennworte sondern nur Pfade mit.

    Ansonsten musst du halt damit leben, dass der User deiner Anwendung mal irgendwann das Kennwort gibt. Per Popup-Anmeldung kommt er ja schließlich weiter.

    Mittwoch, 12. Dezember 2018 20:51
  • Entweder ein User ist berechtigt für das Share oder nicht.

    Wenn er berechtigt ist, regelt i.d.R. AD die Synchronisation bei Kennwortwechsel.
    Der User meldet sich an und kann auf alle berechtigten UNC-Pfade zugreifen ohne dass er sich erneut anmelden muss.

    Wenn es ein Laufwerk sein muss, kann man dies per GPO bereits mappen. Somit ist auch hier keine weitere Anmeldung erforderlich.

    Wo also ist den eigentliches Problem?

    Eine Anwendung sollte nicht das Recht haben, sich selber per Net Use zu verbinden. Das Recht hat eigentlich der User der die Anwendung eben anwendet;-).
    Der Anwendung teilt man den Pfad mit und gut ist, für den Rest ist der User zuständig.

    Moin,

    der TO redet von Windows CE. Da gibt es keine User-Anmeldung zu Beginn der  Windows-Sitzung, keine AD-Mitgliedschaft usw.


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Donnerstag, 13. Dezember 2018 07:46