2012-12-01 26 views
9

Dies ist der Befehl, die von einer Benutzer-gelaicht Eingabeaufforderung, wenn laufen einwandfrei funktioniert:PSEXEC - „Das Handle ist ungültig“, wenn Sie den Befehl als Systembenutzer ausgeführt

PSEXEC \\xxx.xxx.xxx.xxx -u xxxx -p xxxx -accepteula cmd /c "TYPE C:\Pyxislog\PYXIS01.log|Find/i "%ID%"" >nul 

Allerdings, wenn ich versuche, dies zu laufen von einer System-Aufruf cmd Aufforderung erhalte ich diese:

Couldn't access 10.219.149.65: 
The handle is invalid. 
Connecting to 10.219.149.65... 

es hat als Systembenutzer ausgeführt werden, da es über ein Remote-Software-Tool, das als Systembenutzer läuft bereitgestellt wird. Ist das eine Einschränkung von psexec? und ja, der Benutzername und das Passwort haben administrative Rechte.

Antwort

8

Nach viel Forschung, ist es eine Windows-Sicherheitsfunktion, um den gesamten Netzwerkzugriff auf den Systembenutzer zu blockieren, der laufende Aufgaben als ein anderer Benutzer enthält. Die beste Methode, die ich gefunden habe, um dies zu umgehen, besteht darin, eine geplante Aufgabe zu erstellen, um psexec von einem Administratorkonto aus auszuführen.

1

Psexec erzwingt die Verwendung des Systembenutzerkontos durch Hinzufügen von -s Parameter.

Wir verwenden psexec, um eine Aufgabe auf Remotecomputern zu starten, und es meldet sich in einer Datenbanktabelle an. Wenn wir verwenden Parameter es erscheint als Domäne \ Administrator-Benutzer nicht, aber wenn Sie Parameter sie verwenden es scheint, als "System"

Für die ungültige Handelte Nachricht dies überprüfen:

https://superuser.com/questions/200938/psexec-the-handle-is-invalid

+0

Vielen Dank für Ihre Eingabe, aber Sie können missverstehen, was ich meine. Die Zeile funktioniert einwandfrei, wenn ich meine vollständige Batchdatei ausführe, weil ich die Batchdatei als Benutzerkonto ausführe. Wenn ich jedoch versuche, das Paket auf demselben Computer bereitzustellen, auf dem es manuell ausgeführt wurde, schlägt es fehl, da die Stapelverarbeitungsdatei als SYSTEM-Benutzer ausgeführt wird. Ich brauche PSEXEC nicht, um auf das Systemkonto auf dem entfernten Rechner zuzugreifen, ich brauche es, um auf ein Administratorkonto zuzugreifen. – bill

+0

Verwenden Sie dasselbe Benutzerkonto in der psexec-Anmeldung? Ich denke du bist –

+0

Ja, zum Beispiel kopiere ich den Befehl, den ich oben für PSEXEC gezeigt habe (mit den xxxx's ausgefüllt) in ein CMD Fenster, das ich geöffnet habe, indem ich> run> CMD starte. Dann rufe ich ein anderes CMD-Fenster als SYSTEM-Benutzer auf, indem ich 'psexec -i -s cmd.exe 'mache und dann den exakt gleichen Befehl einfüge, den ich im ersten CMD-Fenster gemacht habe, und es wird diesen Fehler neu erzeugen. – bill

1

Haben Sie versucht, die Markierung -h zu verwenden?

von technet: -h Wenn das Zielsystem Vista oder höher ist, wird der Prozess mit dem erhöhten Token des Kontos ausgeführt, sofern verfügbar.

Voll Seite: https://technet.microsoft.com/en-us/sysinternals/psexec.aspx

+0

Dieser Prozess wird unter dem Konto NT Authority \ SYSTEM nicht als Benutzer ausgeführt. Daher muss kein Höhen-Token verwendet werden. – bill

0

Es könnte nicht verwandt sein, aber ich finde eigentlich habe ich diese „Das Handle ist ungültig“ Fehler, wenn die Verbindung zur Maschine ging nach unten - das heißt, die Maschine einschlief.