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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 447014
Url: https://administrator.de/contentid/447014
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
10 Kommentare
Neuester Kommentar
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