Como persistir credenciais em uma sessão remota do Powershell?

11

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 montagem com uso de rede. Isso foi testado executando esses comandos em uma sessão local do Powershell no Windows Server 2012 R2.

Mas preciso adicionar essa etapa a um script de implantação do Azure. Um script do Azure Powershell é executado em meu laptop, se conecta à assinatura do Azure e cria as VMs a partir do zero, usando muitas variáveis.

Descobri o uso de 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á erros.

PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *

Teve um problema semelhante (e não foi possível corrigi-lo) com o Módulo do Windows Update PowerShell (Invoke-WUInstall), que funciona muito bem em uma sessão local do Powershell na VM, mas não é atualizado quando iniciado por meio do Powershell remoto .

Qualquer maneira de contornar este?

    
por Razvan Zoitanu 27.03.2015 / 16:49

1 resposta

1

Devido a como o Windows lida com a autenticação, não é possível usar o CMDKEY para definir credenciais por meio de uma sessão remota do PowerShell, isso deve ser feito de forma interativa ao usar o CMDKEY.

Para citar Don Jones de um fio que parece para uma resposta semelhante à sua:

That's a limitation of the Cmdkey command – not really a PowerShell thing. But it's related to the way Remotig handles credentials. The remote session doesn't actually get a credential, it gets a delegated ticket, so there's no token to actually save. That's all by design, and not something you can reconfigure.

    
por 14.07.2016 / 16:50