it-swarm.com.de

PSEXEC - "Das Handle ist ungültig" Wenn der Befehl als Systembenutzer ausgeführt wird

Dieser Befehl funktioniert gut, wenn er von einem vom Benutzer erstellten Befehl ausgeführt wird. Eingabeaufforderung:

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

Wenn ich jedoch versuche, dies über eine systemaufgerufene cmd-Eingabeaufforderung auszuführen, erhalte ich Folgendes:

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

Es muss als Systembenutzer ausgeführt werden, da es über ein Remote-Software-Tool bereitgestellt wird, das als Systembenutzer ausgeführt wird. Ist das eine Einschränkung von Psexec? und ja, der Benutzername und das Passwort haben Administratorrechte.

12
bill

Nach langen Nachforschungen ist es eine Windows-Sicherheitsfunktion, den gesamten Netzwerkzugriff für den Systembenutzer zu blockieren. Dazu gehört auch das Ausführen von Aufgaben als anderer Benutzer. Die beste Methode, die ich zur Umgehung dieses Problems gefunden habe, besteht darin, eine geplante Task zum Ausführen von psexec von einem Administratorkonto aus zu erstellen.

11
bill

Haben Sie versucht, das Flag -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.

Ganze Seite: https://technet.Microsoft.com/en-us/sysinternals/psexec.aspx

1
The IT guy

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

Wir verwenden psexec, um eine Aufgabe in Remote-Computern zu starten, und es wird in einer Datenbanktabelle protokolliert. Wenn der Parameter -s nicht verwendet wird, wird Benutzer als Domäne\Administrator angezeigt, aber wenn Sie den Parameter - verwenden, wird er angezeigt als "System"

Für die ungültige Handle-Nachricht überprüfen Sie dies:

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

1
Carlos Landeras

Hier ist der Code, den ich verwendet habe, um die Anweisungen des IT-Mitarbeiters zum Planen einer als Administrator auszuführenden Aufgabe zu befolgen und das Problem "Das Handle ist ungültig" zu vermeiden.

        //Schedule a task that will run the script
        using (TaskService ts = new TaskService())
        {
            TaskDefinition td = ts.NewTask();
            td.RegistrationInfo.Description = "Runs script as admin user";
            td.Triggers.Add(new TimeTrigger(DateTime.Now.AddMinutes(2)));
            td.Actions.Add(new ExecAction(@"C:\...\script.exe"));
            try
            {
                ts.RootFolder.RegisterTaskDefinition(@"Script", td, TaskCreation.CreateOrUpdate, "username", "password", logonType: TaskLogonType.Password);
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine("Could not register task in task scheduler.");
                Console.WriteLine(e.ToString());
                return;
            }
        }
0
Shannon M

Es könnte nicht verwandt sein, aber ich habe tatsächlich festgestellt, dass ich die Fehlermeldung "Das Handle ist ungültig" erhalten hat, wenn die Verbindung zur Maschine unterbrochen wurde - d. H. Die Maschine ist eingeschlafen.

0
vapcguy