У меня есть общий доступ к файлам Azure, и я хотел бы использовать его на своих виртуальных машинах Azure - после сохранения учетных данных на виртуальных машинах с помощью cmdkey и монтирования с использованием сети. Это было проверено путем запуска этих команд в локальном сеансе Powershell на Windows Server 2012 R2.
Но мне нужно добавить этот шаг в сценарий развертывания Azure. Сценарий Azure Powershell запускается с моего ноутбука, подключается к подписке Azure и создает виртуальные машины с нуля, используя множество переменных.
Выяснили, как использовать Invoke-Command для передачи переменных из сценария Azure Powershell в удаленный сеанс Powershell на вновь созданной виртуальной машине.
$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)
И ошибка:
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
CMDKEY: Credentials cannot be saved from this logon session.
Заменяется на cmdkey / list для проверки синтаксиса, и ошибки нет.
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *
Была похожая проблема (и не удалось ее устранить) с модулем Windows PowerShell Update (Invoke-WUInstall), который прекрасно работает в локальном сеансе Powershell на виртуальной машине, но не обновляется при запуске через удаленный Powershell.
Есть ли способ обойти это?
источник