Powershell - Skript funktioniert nicht
Hallo zusammen,
ich möchte folgenden Powershell Befehl ausführen:
Aus einer Textdatei, in der mehrere Server mit FQDN Namen eingetragen sind, möchte ich von einem Server Remote per Powershell einen gesonderten Befehl abrufen und den Output speichern.
Mit Get-Content kann ich die Textdatei auslesen. Mit ForeachObject kann ich die einzelnen Server in der Textdatei durchgehen. Mit Invoke-Command kann ich den Befehl auf den Remoteservern ausführen. Leider klappt es trotzdem nicht. Hat jemand eine Idee, welcher Befehl hier noch fehlt?
Ich bin noch recht neu im Powershell-Skripting.
Vielen Dank.
LG
ich möchte folgenden Powershell Befehl ausführen:
Aus einer Textdatei, in der mehrere Server mit FQDN Namen eingetragen sind, möchte ich von einem Server Remote per Powershell einen gesonderten Befehl abrufen und den Output speichern.
Mit Get-Content kann ich die Textdatei auslesen. Mit ForeachObject kann ich die einzelnen Server in der Textdatei durchgehen. Mit Invoke-Command kann ich den Befehl auf den Remoteservern ausführen. Leider klappt es trotzdem nicht. Hat jemand eine Idee, welcher Befehl hier noch fehlt?
Ich bin noch recht neu im Powershell-Skripting.
Vielen Dank.
LG
Please also mark the comments that contributed to the solution of the article
Content-Key: 447014
Url: https://administrator.de/contentid/447014
Printed on: April 20, 2024 at 00:04 o'clock
10 Comments
Latest comment
Zitat von @Neuling26:
Der Fehler ist, dass er den Befehl "dxdak list;" aus dem test.ps1 nicht anerkennt, weil er das CMDlet nicht kennt.
...
Invoke-Command -ComputerName $comp -ScriptBlock {dxdak list}
Der Fehler ist, dass er den Befehl "dxdak list;" aus dem test.ps1 nicht anerkennt, weil er das CMDlet nicht kennt.
...
Invoke-Command -ComputerName $comp -ScriptBlock {dxdak list}
Das CmdLet erkennt PS schon. Es wirft nur einen Fehler. Syntaktisch ist es nicht ganz richtig was du da schreibst. Du verwendest hier keine Variablen oder Pfade. Woher also soll PS wissen was du willst?
richtig wäre es so (beistrich nicht vergessen):
#Die auszuführende Datei meistens eine exe
$dxdax = "C:\Windows\System32\notepad.exe"
#die Argumente für die exe
$list = "Der\Pfad\zu\einer\datei.txt"
Invoke-Command -ComputerName $env:COMPUTERNAME -ScriptBlock {$dxdax, $list}
du kannst sowas einfaches aber auch so ausführen. Beachte dazu das vorangestellte kaufmännische "&":
&$dxdax $list
die Hilfe ist auch immer ein heißer Tipp:
Get-Help -Full Invoke-Command