Prozessliste von Befehlen auf Remote-Rechner mit Invoke-Command
-
28-09-2019 - |
Frage
Ich versuche, einen Powershell-Skript zu schreiben, die eine Liste von Befehlen nehmen und sie dann auf einem entfernten Rechner laufen, ich habe den folgenden Code:
foreach($command in $commands)
{
Invoke-Command -computer "BNEBAK" -scriptblock{"$command"}
}
, die keine Fehler werfen aber auch nicht laufen tatsächlich den Befehl (z Stop-Service-Dienstnamen). $ Befehle in einer Textdatei als Argument übergeben lesen, wenn das Skript aufgerufen wird, weiß ich, der Rest dieses Skript funktioniert, weil ich es zu tun lokale Befehle mit Invoke-Expression für einige Zeit verwendet haben.
Jede Hilfe wäre fantastisch.
Lösung
Der richtige Code wäre
$commands = @(get-content com.txt)
for($command in $commands) {
$scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock($command)
Invoke-Command -computer $computer -scriptblock $scriptblock
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow