lista de procesos de comandos en la máquina remota con Invoke-Command
-
28-09-2019 - |
Pregunta
Estoy tratando de escribir un script de PowerShell que tendrá una lista de comandos y luego ejecutarlos en una máquina remota, tengo el siguiente código:
foreach($command in $commands)
{
Invoke-Command -computer "BNEBAK" -scriptblock{"$command"}
}
Lo que no lanza ningún error, sino también en realidad no ejecuta el comando (por ejemplo servicename parada de servicio). $ comandos son leídos desde un archivo de texto pasado como argumento cuando se llama al script, sé que el resto de este script funciona porque he estado usando para hacer comandos locales con Invoke-Expresión durante algún tiempo.
Cualquier ayuda sería fantástico.
Solución
El código correcto sería
$commands = @(get-content com.txt)
for($command in $commands) {
$scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock($command)
Invoke-Command -computer $computer -scriptblock $scriptblock
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow