PsExec und Windows 7

Ich arbeite hin und wieder gern mit PsExec (v1.98), um auf PCs im Netzwerk Batch-Dateien auszuführen oder Software zu installieren. Mit Windows XP hat das bisher super funktioniert. Gestern sollte genau das mit Windows 7 reine Formsache sein. Funktioniert hat nichts.

Beim Versuch eine Datei auf der entfernten Maschine zu starten, kam folgende Fehlermeldung:

Connecting to <IP der Windows 7-Maschine>...
Couldn't access <IP der Windows 7-Maschine>:
Zugriff verweigert

Alles Suchen in Foren, Verwendung des -h Parameters u.Ä. brachte nichts. Ich habe heute zu Hause den Aufbau nachgestellt und habe nach einigem Lesen in Dokus die Lösung gefunden.

Der Benutzer, in dessen Kontext PsExec auf der entfernten Maschine aufgerufen wird, muss Administrator, genauer Mitglied der Administratoren-Gruppe, sein. Das sagt die PsExec-Anleitung. Und genau das kann nicht funktionieren. Damit PsExec auf der entfernten Maschine einen Befehl ausführen kann, muss es in das Windows-Verzeichnis der entfernten Maschine eine Datei namens „PSEXESVC.EXE“ kopieren (z.B. nach „C:\Windows\PSEXESVC.EXE“). Das klappt nur, wenn der Benutzer, der beim Aufruf von PsExec angegeben wurde, Zugriff auf die Admin$-Freigabe der entfernten Maschine hat. Und dieses Recht besitzt nur der Benutzer „Administrator“ selbst.

Im folgenden ist die Maschine, von der aus der PsExec-Aufruf erfolgt, „A“. Auf A läuft Windows XP. Die Maschine, auf der per Fernzugriff ein Befehl ausgeführt werden soll, heißt „B“. Auf B läuft Windows 7 Professional. Soweit ich weiß, funktioniert PsExec nicht mit den Home-Versionen von Windows 7.

Vorarbeit auf B: Der Benutzer „Administrator“ ist unter Windows Vista/7 standardmäßig deaktiviert und muss zuerst aktiviert und mit einem Passwort versehen werden. Vorgehen: Startmenü -> Zubehör -> Rechtsklick auf „Eingabeaufforderung“ und aus dem Menü „Als Administrator ausführen“ wählen. In dem Terminalfenster folgenden Befehl ausführen:

net user Administrator /active:yes

Daraufhin sollte die Meldung „Befehl erfolgreich ausgeführt.“ erscheinen. Wenn die Aktion fehlschlägt, dann wurde das Terminalfenster nicht mit Administratorrechten gestartet. Als nächstes die Systemsteuerung und darin die Benutzerverwaltung öffnen. Dort den Administrator auswählen und diesem ein Kennwort zuteilen.

Zum Test auf A nun auch hier die Eingabeaufforderung öffnen und folgende Befehle nacheinander ausführen:

net use \\<IP von B>\Admin$ /user:Administrator
dir \\<IP von B>\Admin$
net use \\<IP von B>\Admin$ /delete

Beim ersten Befehl wird das Passwort des Administrators gesondert abgefragt, das im vorherigen Schritt zugewiesen wurde. Wenn diese Anfragen funktioniert haben (der dir-Befehl sollte den Inhalt von C:\Windows auf B anzeigen), wird auch PsExec funktionieren.

Test mit PsExec auf A:

psexec \\<IP von B> -u Administrator -p <Passwort> "C:\Windows\explorer.exe"

Sollte es wider erwarten weitere Probleme, v.a. mit der Admin$-Freigabe geben, sind folgende zwei Artikel hilfreich:

http://blog.hansmelis.be/2009/09/06/administrative-shares-in-windows-7/
http://www.intelliadmin.com/index.php/2009/08/windows-7-the-admin-share/

Dieser Post ist auch verfügbar auf: Englisch

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert