$username = "username"
$password = convertto-securestring "*****" -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
$session = New-PSSession -computername 'testserver' -credential $cred
Invoke-Command -Session $session -ScriptBlock {New-NetIPAddress -IPAddress 10.201.10.10 -InterfaceAlias 'LoadBalancer' -AddressFamily IPv4 -PrefixLength 24}
Remove-PSSession -Session $session
El script anterior funciona bien desde el servidor VMM pero falla cuando lo incluyo como parte del plan de recuperación del sitio.
Mensaje de error de Azure: excepción de secuencia de comandos: no se puede validar el argumento en el parámetro 'Sesión'. El argumento es nulo o vacío. Proporcione un argumento que no sea nulo ni esté vacío y luego intente ejecutar el comando nuevamente.
¿Dónde me equivoco?
Respuesta1
No soy muy bueno en secuencias de comandos, pero espero que lo que señalo pueda ayudar a llegar a la respuesta correcta.
$session = New-PSSession -computername 'testserver' -credential $cred -> Crea una sesión en la computadora especificada. $ sesión -> Desde que se creó esa sesión, no creo que necesites esto. ... $session - Dado que la sesión ya se está ejecutando. No veo la necesidad de volver a llamar al mismo. Remove-PSSession $session -> La variable que pasas es para crear otra sesión más. No eliminar lo existente. Creo que solo necesitas especificar el nombre del servidor aquí o el ID de la sesión en dicho servidor.
Respuesta2
Descubrí la solución para este problema. Aunque VMM ejecutó correctamente mi script, Azure mostraba un error. Principalmente se quejaba de la última línea del guión. Modificó la última línea con la siguiente y ahora funciona bien.
Eliminar-PSSession -Session $sesión