Ich besitze eine Azure-Dateifreigabe und möchte diese von meinen Azure-VMs verwenden, nachdem ich die Anmeldeinformationen auf den VMs mit cmdkey beibehalten und mit Netznutzung bereitgestellt habe. Dies wurde getestet, indem diese Befehle in einer lokalen Powershell-Sitzung unter Windows Server 2012 R2 ausgeführt wurden.
Ich muss diesen Schritt jedoch einem Azure-Bereitstellungsskript hinzufügen. Ein Azure Powershell-Skript wird auf meinem Laptop ausgeführt, stellt eine Verbindung zum Azure-Abonnement her und erstellt die VMs unter Verwendung vieler Variablen von Grund auf neu.
Es wurde herausgefunden, dass mit Invoke-Command die Variablen aus dem Azure Powershell-Skript an eine Remote-Powershell-Sitzung auf der neu erstellten VM übergeben werden.
$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)
Und der Fehler:
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
CMDKEY: Credentials cannot be saved from this logon session.
Durch cmdkey / list ersetzt, um die Syntax zu überprüfen, und es liegt kein Fehler vor.
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *
Hatte ein ähnliches Problem (und konnte es nicht beheben) mit dem Windows Update PowerShell-Modul (Invoke-WUInstall), das in einer lokalen Powershell-Sitzung auf der VM einwandfrei ausgeführt wird, jedoch nicht aktualisiert wird, wenn es über Remote-Powershell gestartet wird.
Wie kann man dieses umgehen?