PsExec-Zugriff wird verweigert

11

Ich verwende psexec.exe, um Programme in einem anderen Sicherheitskontext auszuführen. Die Programme werden zwar gestartet, scheinen jedoch nicht im angegebenen Sicherheitskontext ausgeführt zu werden.

In seiner minimalen Form:

psexec -u wsadmin -p password cmd

Startet ein neues cmd-Fenster, wenn ich dieses Fenster eingebe whoami

C:\Windows\system32>whoami
win-k1r7g38nlkt\wsadmin

C:\Windows\system32>net localgroup administrators
Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Administrator
wsadmin
The command completed successfully.

Wie Sie sehen können, bin ich definitiv der andere Benutzer. Und ich kann bestätigen, dass dieser Benutzer Mitglied der "Administratorgruppe" ist.

C:\Windows\system32>mkdir test
Access is denied.

Wenn ich mit dem angegebenen Benutzer Runas verwende, funktioniert dies wie angenommen. Aber ich muss das Passwort in der Kommandozeile eingeben.

Tuim
quelle

Antworten:

10

Wenn unter Windows Vista und höher die Benutzerkontensteuerung aktiviert ist, muss für einen Prozess, der von psexec- auch wenn er von einem Administratorkonto ausgeführt wird - gestartet wird, das Erhöhungs-Token festgelegt sein, um die vollständigen Berechtigungen zu erhalten. Dies kann durch Übergeben des -hAttributs in der psexecBefehlszeile erfolgen. Sie würden Ihren Befehl also ändern in:

psexec -h -u wsadmin -p password cmd

Weitere Informationen erhalten Sie unter psexec /?:

    -h    If the target system is Vista or higher, has the process
          run with the account's elevated token, if available.
nhinkle
quelle
9
Leider gibt mir dies "PSExec-Dienst konnte nicht installiert werden, Zugriff verweigert"
Tuim
Führen Sie den ersten Befehl auch an einer Eingabeaufforderung mit erhöhten Rechten aus oder verwenden Sie ihn als lokalen Ausführungsbefehl?
nhinkle
Der ursprüngliche Befehl führt einen 'Benutzer'-Sicherheitskontext aus. Ich kann run-as aus bestimmten Gründen nicht verwenden.
Tuim
1
Verwenden Sie "Erhöhte Eingabeaufforderung" oder "Erhöhte PowerShell-Eingabeaufforderung" über "Start> Typ" PowerShell "> Klicken Sie mit der rechten Maustaste auf" Windows PowerShell "> Wählen Sie" Als Administrator ausführen "und führen Sie den Befehl psexec einschließlich der -hOption aus.
Underverse
@Underverse, Ist es möglich, psexec vom Benutzer CMD zu verwenden, nicht vom Administrator PS? Ich möchte psexec genau für den Übergang von CMD in den Administratorkontext verwenden :)
Suncatcher
5

Es dauerte Stunden , um einen Arbeits Weg zu finden PsExeczwischen zwei Windows 7 Computern mit Nicht-Admin - Benutzer starten PsExec... Deaktivieren der UAC ( EnableLUA=0, ConsentPromptBehaviorAdmin=0, LocalAccountTokenFilterPolicy=1) funktioniert nicht, der Firewalls ausgeschaltet hat nicht funktioniert ...

Hier habe ich den Weg gefunden - danke JelmerS: (Info von PSexec stellt keine Verbindung zum Computer mit dem angegebenen Benutzernamen und Passwort her )

Dies liegt daran, dass psexecimmer noch versucht wird, ADMIN$mit Ihren lokalen Anmeldeinformationen auf die Freigabe zuzugreifen , bevor Sie Ihren Befehl als anderer Benutzer ausführen. Gemäß diesem Thread können Sie Anmeldeinformationen zwischenspeichern, bevor Sie psexec ausführen:

cmdkey.exe /add:MACHINE_NAME_HERE /user:MACHINE_NAME_HERE\Administrator /pass:PASSWORD_HERE 
psexec.exe \\MACHINE_NAME_HERE -i notepad
cmdkey.exe /delete:MACHINE_NAME_HERE
Peter Feldhammer
quelle
Hinweis - Wenn Sie Ihr Kennwort nicht im Befehlszeilenverlauf haben möchten, können Sie einfach / pass ohne Kennwort verwenden und Sie werden aufgefordert, eines einzugeben.
Joe the Coder
1

Ich habe eine Lösung gefunden:

Es stellt sich heraus, dass psexec bei aktivierter Benutzerkontensteuerung nicht wie angenommen funktioniert.
Wann HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUAimmer 0psexec eingestellt ist, funktioniert es wie erwartet.

Tuim
quelle
4
Die andere Möglichkeit, die Registrierung nicht zu ändern, besteht darin -h, dem psexecBefehl nur das Flag hinzuzufügen . Dies weist ihn an, den Befehl mit dem erhöhten Token auszuführen, was dem Starten eines Prozesses "als Administrator" über das Kontextmenü entspricht.
nhinkle
5
Die Einstellung EnableLUAzum 0Deaktivieren Admin Approval Modeist im Grunde der Kern der Benutzerkontensteuerung. Infolgedessen wird die Benutzerkontensteuerung deaktiviert. Quelle .
Vlastimil Ovčáčík
Für mich funktionierte das Flag -h nicht und das Deaktivieren der Benutzerkontensteuerung war problematisch, aber ich fand eine bessere Alternative
mTorres
0

Folgendes hat bei mir funktioniert: Die Benutzerkontensteuerung wird nicht vollständig entfernt, sondern für Administratoren deaktiviert

Computerkonfiguration \ Windows-Einstellungen \ Sicherheitseinstellungen \ Lokale Richtlinien \ Sicherheitsoptionen \ Benutzerkontensteuerung: Führen Sie alle Administratoren im Administratorgenehmigungsmodus aus - Deaktiviert

cristobalhernandez
quelle
Welches ist nicht wirklich eine gute Idee. Wie ist dies außerdem eine Verbesserung im Vergleich zu den anderen verfügbaren Lösungen?
Seth