caddy0815
Goto Top

Psexec Fehler bei bestimmten bat-Dateien und auch mit Win7

Hallo,

nach langem googeln nach einer Lösung habe ich mich entschlossen mich hier an euch zu wenden.

Ich habe mehrere Batch-Dateien, die ich per psexec auf anderen PC's im Netz starte z.B. zum Einspielen bestimmter Tools, zum Test der Netzwerkperformance usw.
Jetzt komme ich irgendwie nicht weiter, weil ich 2 Dateien habe, die gar nicht gehen.
Außerdem komme ich mit Psexec nicht auf Win7 Rechner, obwohl ich die oft beschriebene Registryänderung vorgenommen habe und auch die Option -h nutze.

Also eigentlich 2 Fragen.
zu 1:
folgende Batch geht z.B. ohne Probleme per psexec zu starten (Psexec-Zeile: psexec \\IP -u Name -p pw -s \\Pfad\iperf.bat)
copy "\\Nt-ael-server\Transfer\System-Tools\jperf-2.0.2\bin\iperf.exe" "C:\"
C:\iperf.exe -s -P 0 -i 1 -p 5001 -f

mit dem entsprechende psexec-Befehl geht diese Batch nicht:
@echo off & setlocal
set "Datei=%CFE_CLIENT_HOME%cfe.exe"
set "GetV=%Temp%\GetV.vbs"
echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%"
echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%"
echo For Each objFile in colFiles: WScript.Echo objFile.Version: Next>>"%GetV%"
set Version=
for /f %%i in ('cscript.exe //nologo "%GetV%" "%Datei%"') do set "Version=%%i"
if defined Version echo %computername% - %Datei% - Version %Version% >> \\Pfad\Datei.log
del "%GetV%"

Lokal funktioniert die batch ohne Probleme.

Diese Batch zum Auslesen des Gateway für die PC's im Netz geht auch nicht:
echo %computername% >> \\Pfad\ip.log
@ipconfig /all | findstr /i /C:"Subnetzmaske" >> \\Pfad\ip.log

Ich habe keine Erklärung warum einige funktionieren und andere nicht.
Psexec bringt immer die Meldung "Zugriff verweigert" zurück. Am Login kann es eigentlich nicht liegen, das geht ja bei den anderen bat auch.

Habt ihr eine Lösung. Vielleicht ist es ja ganz einfach, aber ich bin mit meinem Latein am Ende.

zu 2.
warum komme ich mit psexec nicht auf Win7? Windows Firewall ist aus, der Reg-Schlüssel (reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f) ist drin, aber es will nicht klappen.
Es kommt immer Zugriff verweigert. Die selbe Batch lässt sich auf einem WXP aber per psexec starten.

Ich Danke euch schon mal für eure Tipps.

Content-ID: 160772

Url: https://administrator.de/contentid/160772

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

DerWoWusste
DerWoWusste 15.02.2011 um 14:08:02 Uhr
Goto Top
Ich kann es gerade nicht nachprüfen, aber könnte es sein, dass der Dienst "Remote Registry" auf den Zielrechnern laufen muss? Der steht auf Vista und 7 nämlich im Gegensatz zu xp nicht auf Automatikstart.
DerWoWusste
DerWoWusste 15.02.2011 um 20:54:34 Uhr
Goto Top
Ich zieh meinen Kommentar zurück: remote registry ist es nicht. Teste den Zugriff auf \\zielpc\admin$ - der muss gehen.
Caddy0815
Caddy0815 16.02.2011 um 07:45:38 Uhr
Goto Top
Bei Windows7 geht der Zugriff auf admin$ und C$ ohne Probleme.
Bei den WXP-Rechner geht es ja sowieso, da gehen ja auch einige Batch-Dateien mittels psexec.

Vielleicht weiß jemand einen Rat zu einem der beiden Probleme.
60730
60730 18.02.2011 um 01:23:58 Uhr
Goto Top
moin und willkommen,

  • da du neu bist - bin ich etwas behutsamer, als sonst:
  • dir bleibt mein Bart und seine grüne Tafel erspart face-wink
  • bitte poste dein batche doch zwischen
die sind für dich viel einfacher zu schreiben, als für mich, vor allem, weil ich mit dem Touch unterwegs bin.

Zitat von @Caddy0815:
Ich habe mehrere Batch-Dateien, die ich per psexec auf anderen PC's im Netz starte z.B. zum Einspielen bestimmter Tools, zum
Test der Netzwerkperformance usw.
Jetzt komme ich irgendwie nicht weiter, weil ich 2 Dateien habe, die gar nicht gehen.
Außerdem komme ich mit Psexec nicht auf Win7 Rechner, obwohl ich die oft beschriebene Registryänderung vorgenommen habe
und auch die Option -h nutze.

Also eigentlich 2 Fragen.
zu 1:
folgende Batch geht z.B. ohne Probleme per psexec zu starten
(Psexec-Zeile: psexec \\IP -u Name -p pw -s \\Pfad\iperf.bat)
copy "\\Nt-ael-server\Transfer\System-Tools\jperf-2.0.2\bin\iperf.exe" "C:\"  
C:\iperf.exe -s -P 0 -i 1 -p 5001 -f

mit dem entsprechende psexec-Befehl geht diese Batch nicht:
@echo off & setlocal 
set "Datei=%CFE_CLIENT_HOME%cfe.exe"   
set "GetV=%Temp%\GetV.vbs"   
echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%"   
echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE  
Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%"  
 
echo For Each objFile in colFiles: WScript.Echo objFile.Version: Next>>"%GetV%"   
set Version= 
for /f %%i in ('cscript.exe //nologo "%GetV%" "%Datei%"') do set "Version=%%i"   
if defined Version echo %computername% - %Datei% - Version %Version% >> \\Pfad\Datei.log
del "%GetV%"  
Lokal funktioniert die batch ohne Probleme.
  • In wessen Umgebung ist denn die Variable %CFE_CLIENT_HOME%?
- wenn du wie oben das mit -s startest und das eine Uservariable ist - kanns nicht laufen.
IF "%CFE_CLIENT_HOME%"=="" echo Variable nicht gesetzt>%temp%\logfile.ini  
wäre mal ein Ansatz.
  • Und da dir die @echo off nummer schon erspart wird - warum löscht du das temp.vbs, wenn es Probleme im Ablauf gibt?
  • Das würde ich mir schon ansehen um z.B meine Vermutung ausschliessen zu können.
  • Warum überhaupt ein temporäres vbs?

Diese Batch zum Auslesen des Gateway für die PC's im Netz geht auch nicht:
echo %computername% >> \\Pfad\ip.log
@ipconfig /all | findstr /i /C:"Subnetzmaske" >> \\Pfad\ip.log  
  • Kunststück Subnetmask <> Gateway face-wink
  • was genau geht denn nicht - komplett alles - odernur die zweite Zeile?
  • IPv6 auf den Kisten aktiv?

Ich habe keine Erklärung warum einige funktionieren und andere nicht.
Psexec bringt immer die Meldung "Zugriff verweigert" zurück. Am Login kann es eigentlich nicht liegen, das geht ja bei den anderen bat auch.
  • Sind das .bat? - das sind erweiterte commandshells - die würde ich immer cmd nennen
Hat aber mit der Problematik nix zu tun, ist nur die sinnvolere Suffix für sowas

Habt ihr eine Lösung. Vielleicht ist es ja ganz einfach, aber ich bin mit meinem Latein am Ende.

zu 2.
warum komme ich mit psexec nicht auf Win7? Windows Firewall ist aus, der Reg-Schlüssel (reg add
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f) ist drin,
aber es will nicht klappen.
Es kommt immer Zugriff verweigert. Die selbe Batch lässt sich auf einem WXP aber per psexec starten.
  • Die neueren Versionen mögen manchmal keine cmds von Shares oder fremden Systemen - warum du nicht Psexec mit -c benutzt, weiß ich nicht und ob es das ist - auch nicht.
Ich Danke euch schon mal für eure Tipps.

Gruß

edit:
@ Florian, nö Mädelz liegen beide in der Kiste und Strandwetter ist nur bis 15.00, danach ists zu kalt und windig
[OT]
  • Warum trinken die Engländer warmes Bier? - Weil Lucas die Kühlschränke baut
[OT]
/edit
Florian.Sauber
Florian.Sauber 18.02.2011 um 01:29:09 Uhr
Goto Top
[OT]
Ja wie T-Mo,

ich dachte Du lässt den /das IT-geQatsche in Deinem wohlverdienten Urlaub hinter Dir?!

Und jetzt schon wieder hier, anstatt dass Du Dir vin (D)einem Mädchen die Pinacoladas runter zur Strandliege bringen lässt?

face-smile
Caddy0815
Caddy0815 16.05.2011 um 12:31:22 Uhr
Goto Top
Hallo allerseits,

nach langer Abwesenheit muss ich nochmal das Thema bearbeiten.
Ich habe die Batch schon zur exe gemacht.
Wenn ich die Dateien lokal starte (sowohl bat als auch exe) laufen sie ohne Probleme durch. Nur wenn ich sie per psexec starte gibt es Probleme.
Psexec meldet zwar keinen Fehler zurück (Error Code 0) aber es gibt keinen Eintrag im log.
Ich verstehe es nicht und weiß auch nicht, wie ich den Fehler nachverfolgen könnte.
Ich kopiere in der bat die exe-Datei lokal auf C: und versuche dann per psexec diese Datei von C: zu starten.

Warum nur kommt da nix bei raus?
Hilfe!