Ho una condivisione file di Azure e vorrei usarla dalle mie macchine virtuali di Azure, dopo aver persistito le credenziali nelle macchine virtuali con cmdkey e aver effettuato il montaggio con uso netto. Questo è stato testato eseguendo questi comandi in una sessione Powershell locale su Windows Server 2012 R2.
Ma devo aggiungere questo passaggio a uno script di distribuzione di Azure. Uno script di Azure Powershell viene eseguito dal mio laptop, si connette alla sottoscrizione di Azure e crea le VM da zero, usando molte variabili.
Si è deciso di usare Invoke-Command per passare le variabili dallo script Azure Powershell a una sessione Powershell remota nella VM appena creata.
$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)
E l'errore:
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
CMDKEY: Credentials cannot be saved from this logon session.
Sostituito con cmdkey / list per verificare la sintassi e non si verificano errori.
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *
Si è verificato un problema simile (e non è stato possibile risolverlo) con il modulo PowerShell di Windows Update (Invoke-WUInstall), che funziona perfettamente su una sessione Powershell locale sulla VM, ma non si aggiorna quando avviato tramite Powershell remoto.
Qualche modo per aggirare questo?