Mam Azure File Share i chciałbym użyć tego z moich maszyn wirtualnych platformy Azure - po utrwaleniu poświadczeń na maszynach wirtualnych za pomocą polecenia cmdkey i zamontowaniu przy użyciu sieci. Zostało to przetestowane przez uruchomienie tych poleceń w lokalnej sesji Powershell w systemie Windows Server 2012 R2.
Ale muszę dodać ten krok do skryptu wdrażania platformy Azure. Skrypt Azure Powershell uruchamia się z mojego laptopa, łączy się z subskrypcją platformy Azure i buduje maszyny wirtualne od zera, używając wielu zmiennych.
Zrozumiał, że można użyć Invoke-Command do przekazania zmiennych ze skryptu Powershell Azure do zdalnej sesji Powershell na nowo utworzonej maszynie wirtualnej.
$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)
I błąd:
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
CMDKEY: Credentials cannot be saved from this logon session.
Zamieniono na cmdkey / list, aby sprawdzić składnię, i nie ma błędu.
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *
Miał podobny problem (i nie mógł go naprawić) z modułem Windows Update PowerShell Module (Invoke-WUInstall), który działa dobrze w lokalnej sesji Powershell na maszynie wirtualnej, ale nie aktualizuje się po uruchomieniu za pomocą zdalnego Powershell.
Jest jakiś sposób na obejście tego?
źródło