smarti
Goto Top

CMD - Wenn Ping erfolgreich PsExec durchführen

Morgen,...

Ziel: Wenn Computername anpingbar, dann PsExec befehl durchführen

Das Script soll sämtliche Computernamen (z.B. TEST01, TEST02, ... TEST50) in einem Bereich durchgehen.
Wenn dieser Computer anpingbar ist, soll er mit PsExec ein GpUpdate durchführen, und wenn nicht anpingbar nix.


Bisheriger Versuch:

cd /d %~dp0

set ip=COMPUTERNAME

for /L %%N IN (1, 1, 100) DO (
        ping %ip%%%N -n 1 > NULL
)
IF ERRORLEVEL 1 goto ende1
IF NOT ERRORLEVEL 1 goto psexec

:psexec
Psexec.exe \\%ip%%%N Gpupdate.exe /force
...


Ich hab im Moment ein Denkfehler oder ka... aber komm hier einfach nicht weiter.

Ich könnte auch jeden Computernamen einzeln auf ping überprüfen und das gpupdate durchführen, aber da wird mir der code zu lang...

Hab gedacht geht auch kürzer


Danke im Voraus für jede Unterstützung

Content-ID: 188206

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

Ausgedruckt am: 16.11.2024 um 10:11 Uhr

AndreasHoster
AndreasHoster 18.07.2012 aktualisiert um 09:24:22 Uhr
Goto Top
Ich bin kein großer Batch Programmierer, aber erste grundlegende Aufälligkeit:
Eine Schleife ist ja schön, aber wenn PSEXEC außerhalb der Schleife steht, wie soll es denn bei jedem Schleifendurchlauf eventuell aufgerufen werden?
Bis Du zu PSEXEC kommst, ist die Schleife schon fertiggelaufen.

Und wieso nicht einfach PSEXEC auf die Rechner loslassen?
PSEXEC gibt von alleine auf, wenn der Rechner nicht erreichbar ist.
SMARTi
SMARTi 18.07.2012 aktualisiert um 09:37:39 Uhr
Goto Top
Das war ja vorerst nur ein Denkansatz was da alles rein soll.
Und da ich mich mit tiefgehender Batch Programmierung auch nicht auskenne, weiß ich nicht wie ich das zusammenfriemeln soll


[edit 1]
Bei überschaulichen 5,6,7.. PC´s macht er das auch...
Aber bei ner gewissen Anzahl fängt er aber nie mit dem Script an (frag mich nicht wieso) (deswegen wollte ich das mit offline ausschließen)


[edit 2]
cd /d %~dp0

set ip=COMPUTERNAME

for /L %%N IN (1, 1, 100) DO (
        Psexec.exe \\%ip%%%N Gpupdate.exe /force
)
Exit

PC 1-6 (die nicht vorhanden sind) läuft er durch und sagt sind nicht vorhanden
PC 7 (der erste der vorhanden ist) er macht nix mehr

hau ich nur:
Psexec.exe \\COMPUTERNAME7 Gpupdate.exe /force
rein, gehts
SlainteMhath
SlainteMhath 18.07.2012 um 09:37:41 Uhr
Goto Top
Moin,

Versuchs mal so:

cd /d %~dp0

set ip=COMPUTERNAME

for /L %%N IN (1, 1, 100) DO (
        ping %ip%%%N -n 1 >nul && Psexec.exe \\%ip%%%N Gpupdate.exe /force
)
...

lg,
Slainte
SMARTi
SMARTi 18.07.2012 um 10:33:34 Uhr
Goto Top
Danke Slain...

geht soweit. Jetzt muss ich nur noch rausfinden warum ein paar PC´s, die online sind nicht wollen.