Deseo utilizar Powershell para llamar a un archivo por lotes en máquinas remotas. Este archivo por lotes tiene argumentos. Esto es lo que tengo hasta ahora:Uso de Invoke-Command de Powershell para llamar a un archivo por lotes con argumentos
$script = "\\fileshare\script.cmd"
$server = $args[0]
$args [string]::join(',',$args[1 .. ($args.count-1)])
Invoke-Command -computername $server {$script + ' ' + $args}
Después de un poco de búsqueda, he encontrado que la función Invoke-Command sigue su ScriptBlock en un proceso totalmente nuevo, por lo que no se puede poner las variables en ella (que ganó' t ampliarse). Para eso es la etiqueta -ArgumentList. Así que probé este lugar ...
Invoke-Command -computername $server {\\fileshare\script.cmd} -ArgumentList "FirstArgument"
que no funcionaron bien ... mi escritura de la hornada me dice que no es que se pasa ningún argumento. No puedo encontrar nada que lo diga explícitamente, pero parece que el parámetro -ArgumentList solo funciona en los scripts de Powershell (no los enviará a un script por lotes).
Alguna idea de cómo puedo usar Invoke-Command para llamar a un archivo por lotes con argumentos?
¡Gracias que lo hizo! Eso es incluso lo que dice hacer en la documentación de TechNet para Invoke-Command, ¡así que estoy un poco avergonzado de no poder resolverlo por mi cuenta! Sin embargo, ese poco de $ args es útil. –