lista dei processi di comandi sulla macchina a distanza con Invoke-Command
-
28-09-2019 - |
Domanda
Sto cercando di scrivere uno script PowerShell che avrà un elenco di comandi e poi eseguirli su una macchina remota, ho il seguente codice:
foreach($command in $commands)
{
Invoke-Command -computer "BNEBAK" -scriptblock{"$command"}
}
Il che non genera alcun errore, ma anche in realtà non esegue il comando (per esempio stop-service servicename). $ comandi vengono letti da un file di testo passato come argomento quando lo script viene chiamato, so che il resto di questo script funziona perché ho utilizzato per fare i comandi locali con Invoke-Expression per un certo tempo.
Qualsiasi aiuto sarebbe fantastico.
Soluzione
Il codice corretto sarebbe
$commands = @(get-content com.txt)
for($command in $commands) {
$scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock($command)
Invoke-Command -computer $computer -scriptblock $scriptblock
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow