我有一个Azure文件共享,并且想在我的Azure VM中使用它-在使用cmdkey将VM中的凭据持久保存并通过网络使用进行安装之后。通过在Windows Server 2012 R2的本地Powershell会话中运行这些命令进行了测试。
但是我需要将此步骤添加到Azure部署脚本中。Azure Powershell脚本从我的笔记本电脑运行,连接到Azure订阅,并使用许多变量从头开始构建VM。
找出了使用Invoke-Command将变量从Azure Powershell脚本传递到新创建的VM上的远程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 Update PowerShell模块(Invoke-WUInstall)遇到了类似的问题(无法解决),该问题在VM上的本地Powershell会话上运行得很好,但是在通过远程Powershell启动时不会更新。
有什么办法可以解决这个问题?