Wie starte ich mit psexec die Installation oder eine andere Aufgabe, die eine UAC-Interaktion erfordert?

7

Ich versuche, Installationen aus der Ferne zu starten, und möchte die Benutzerkontensteuerung nicht deaktivieren. Wenn ich die Prozesse remote mit psexec starte, bleibt das Installationsprogramm stehen und wartet auf die UAC-Eingabeaufforderung. Bei anderen Aufgaben wie dem Bereinigen temporärer Dateien, dem Neustart von Diensten usw. erhalte ich Fehler beim Zugriff verweigert. Gibt es überhaupt eine Möglichkeit, wie psexec die Benutzerkontensteuerung umgehen kann, z. B. sich mit dem Administrator anzumelden, aber mit den TrustedInstaller-Berechtigungen oder ähnlichem?

Ich ziele übrigens auf Windows 2008 R2 ab, aber ich denke, diese Frage gilt auch für Vista, 2008 und Windows 7.

Miguel Ventura
quelle

Antworten:

1

Sie müssen die Option -u verwenden und ein Konto angeben, das lokalen Administratorzugriff auf diesen Computer hat (ein lokales Konto, ein Domänenadministratorkonto usw.).

 -u         Specifies optional user name for login to remote
            computer.

Zum Beispiel

psexec \\pc999.myDomain.loc -u pc999\Administrator <your exe>

Izzy
quelle
1
Es ist auch erforderlich, den Parameter -h zu verwenden, um die Benutzerkontensteuerung zu umgehen.
Skyhawk
12

Der Parameter -h ist hier der Schlüssel: Ohne ihn führt psexec den Befehl mit erhöhten UAC-Berechtigungen unter Windows Vista und höher nicht aus:

C:\Users\merickson>psexec /?

PsExec v1.97 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

PsExec executes a program on a remote system, where remotely executed console
applications execute interactively.

Usage: psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd]
 [-n s][-l][-s|-e][x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>]
 [-a n,n,...] cmd [arguments]

...

 -h         If the target system is Vista or higher, has the process
            run with the account's elevated token, if available.
...

(Bearbeiten: Beweis für die Existenz des Schalters -h hinzugefügt, siehe Kommentar unten)

Miles Erickson
quelle
Prost Miles! Ich habe die Version 1.97 heruntergeladen und sicher genug, dass sie die Flagge -h hat - die Website erwähnt sie nicht, weshalb ich den ursprünglichen Kommentar abgegeben habe.
John Röthlisberger
1

Anscheinend wurde mein Prozess nicht blockiert, weil psexec das bereitgestellte Login ignorierte.

Ich weiß nicht warum, aber unter Verwendung von Vista als Clientcomputer wurden die mit den Parametern -u und -p übergebenen Anmeldeinformationen nicht tatsächlich zum Anmelden am Server verwendet (mithilfe der Ereignisanzeige auf dem Server ermittelt). Stattdessen wurde immer der angemeldete Benutzer verwendet. Anscheinend passiert dies, wenn sich beide Computer in derselben Domäne befinden.

Musste den Anmeldeinformations-Manager (Systemsteuerung> Benutzerkonten> Netzwerkkennwörter verwalten) öffnen und einen neuen Satz für den Zielcomputer mit dem Benutzer erstellen, den ich für psexec verwenden wollte.

Miguel Ventura
quelle
1
psexec \<remote IP> -u user -p password -h netsh advfi
rewall firewall add rule name="AllowRDP " dir=in action=allow protocol=TCP local
port=3389
user235756
quelle
0

Sie können das Flag -s verwenden, um den Befehl im SYSTEM-Kontext auszuführen. Dies setzt voraus, dass Sie den Befehl noch nicht mit anderen Anmeldeinformationen ausführen, die an anderer Stelle im Netzwerk Zugriff benötigen.

Ryan Bolger
quelle
0

Ich habe das gleiche Problem. Der Befehl, den ich ausführe, lautet psexec.exe -accepteula -n 120 \ MyServer -u Benutzer -p Kennwort cmd "/ C dir

Ich führe es von win2008 r2 aus und das Ziel (MyServer) ist auch win2008 r2.

Miguels Vorschlag funktionierte für mich, nachdem ich die Anmeldeinformationen hinzugefügt hatte, funktionierte er einwandfrei.

Ed Sykes
quelle
Sobald Sie die Anmeldeinformationen im Tresor haben, müssen Sie psexec keine Anmeldeinformationen mehr geben. Es tut jedoch nicht weh, die Anmeldeinformationen anzugeben.
Ed Sykes
0

Ich hatte auch dieses Problem, aber Miguels Lösung, die Anmeldeinformationen zum Anmeldeinformationsmanager hinzuzufügen, löste das Problem für mich

Ausführen von Windows 7 32-Bit auf Client und Server in einer Domäne mit psexec 1.98

Ich frage mich, ob dies ein Fehler ist, es scheint so.

aL3891
quelle