Warum ist das Powershell Script so langsam?

1 Antwort

vielleicht bist du auch schon selbst dahinter gestiegen...

test-conection ist langsam

versuche doch einfach den Klassiker

  #-w begrenzt  die wartezeit  vür  einen "toten" Server auf 1000ms (reicht im lokalen Netzwerk dicke) 
ping 192.168.0.201 -n 1 -w 1000

für dein script sähe die "flotte" Variante dann so aus:

$connection = ping 192.168.0.101 -n 1 -w 1000 |findstr /i '"Zeit< Zeit="'
if ($connection){
    'psexec blah'
}
pause

...oder

$connection =  pping $deviceName -n 1 -w 1000 |?{($_ -match 'Zeit=|Zeit<')}

Dein Gerödel mit den einzelnen psexec-Befehlen hätte ich in einer Batch auf dem Zielrechner untergebacht und nur diese per einem psexec-Aufruf auf dem Zielrechner ausgeführt.

Damit verschwindet er Overheat durch das für jeden psexecaufruf erneute verbinden /berechtigungen abfragen und was psexec noch so alles veranstaltet...

Letztlich frage ich mich weshalb Du überhaupt den Aufwand mit Powershell treibst? wenn Du dein PS1 nicht gerade mi rechtsklick startest, brauchst du eine Starter-Batch um di Policies zu setzen... dan kanst Du uch gleich die Sache in Batch abhaken

set "deviceName=ESELHIMMEL"
for /f "tokens=*" %%a in ('ping %deviceName% -n 1 -w 1000 ^|findstr /i "Zeit< Zeit="') do (
   rem  wird nur ausgeführt wenn das gerät im   Netz geantwortet hat (echo  vor  dem befehl ist ein Dummy)
  echo C:\pstools\psexec.exe \\$deviceName setup_power.cmd
)
pause

es gibt durchaus Gründe weshalb Administratoren Powershell nicht unbedingt als StandardScriptspache nutzen.

Powershell is in vielen Bereichen wirklich toll, aber für Kleinkram einfach "Kanonen au Spatzen"

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

frage81273 
Fragesteller
 26.08.2020, 19:23
Powershell is in vielen Bereichen wirklich toll, aber für Kleinkram einfach "Kanonen au Spatzen"

Stimmt, aber das war nur ein Teilausschnitt des Scripts, ausenrum steht noch eine Abfrage bestimmter AD-Computer, denen dann bestimmte User aus bestimmten AD-Gruppen zugeteilt werden. Aber die Idee, eine Batch auf den entsprechenden Rechner zu kopieren und einmal per PSexec auszuführen ist gut, das werde ich mal machen.

0