Eu tenho um compartilhamento de arquivos do Azure e gostaria de usá-lo nas minhas VMs do Azure - depois de persistir as credenciais nas VMs com cmdkey e montar com o uso líquido. Isso foi testado executando esses comandos em uma sessão local do Powershell no Windows Server 2012 R2.
Mas preciso adicionar esta etapa a um script de implantação do Azure. Um script do Azure Powershell é executado no meu laptop, se conecta à assinatura do Azure e cria as VMs do zero, usando muitas variáveis.
Descobri que usar Invoke-Command para passar as variáveis do script do Azure Powershell para uma sessão remota do Powershell na VM recém-criada.
$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 o erro:
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
CMDKEY: Credentials cannot be saved from this logon session.
Substituído por cmdkey / list para verificar a sintaxe, e não há erro.
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *
Teve um problema semelhante (e não pôde corrigi-lo) com o Módulo do Windows Update PowerShell (Invoke-WUInstall), que é executado muito bem em uma sessão local do Powershell na VM, mas não é atualizado quando iniciado via Powershell remoto.
Alguma maneira de contornar este?