Tengo un recurso compartido de archivos de Azure y me gustaría usarlo desde mis máquinas virtuales de Azure, después de conservar las credenciales en las máquinas virtuales con cmdkey y montarlas con uso neto. Esto se probó ejecutando estos comandos en una sesión local de Powershell en Windows Server 2012 R2.
Pero necesito agregar este paso a un script de implementación de Azure. Un script de Azure Powershell se ejecuta desde mi computadora portátil, se conecta a la suscripción de Azure y crea las máquinas virtuales desde cero, utilizando muchas variables.
Descubrí el uso de Invoke-Command para pasar las variables del script de Azure Powershell a una sesión remota de Powershell en la máquina virtual recién creada.
$Session = New-PSSession -ConnectionUri $Uri -Credential $DomainCredential
$ScriptBlockContent = {
Param ($Arg1,$Arg2,$Arg3)
cmdkey /add:$Arg1 /user:$Arg2 /pass:$Arg3}
Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
Y el error:
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
CMDKEY: Credentials cannot be saved from this logon session.
Reemplazado con cmdkey / list para verificar la sintaxis, y no hay error.
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *
Tuve un problema similar (y no pude solucionarlo) con el Módulo de actualización de Windows PowerShell (Invoke-WUInstall), que funciona bien en una sesión local de Powershell en la VM, pero no se actualiza cuando se inicia a través de Powershell remoto.
¿Alguna forma de evitar esto?