Raz*_*anu 14 remote-access powershell windows-server-2012-r2
我有一个 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)
Run Code Online (Sandbox Code Playgroud)
和错误:
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
CMDKEY: Credentials cannot be saved from this logon session.
Run Code Online (Sandbox Code Playgroud)
替换成cmdkey /list 检查语法,没有错误。
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *
Run Code Online (Sandbox Code Playgroud)
Windows 更新 PowerShell 模块 (Invoke-WUInstall) 有一个类似的问题(并且无法修复),它在 VM 上的本地 Powershell 会话上运行得很好,但在通过远程 Powershell 启动时不会更新。
有什么办法可以解决这个问题?
小智 3
由于 Windows 处理身份验证的方式,无法使用 CMDKEY 通过远程 PowerShell 会话设置凭据,因此在使用 CMDKEY 时必须以交互方式完成。
\n\n引用唐·琼斯(Don Jones)在寻找与您类似的答案的帖子中的话:
\n\n\n\n这是 Cmdkey 命令的限制 \xe2\x80\x93 并不是真正的 PowerShell\n 东西。但这与 Remotig 处理凭据的方式有关。远程会话实际上并没有获得凭据,而是获得了委托票证,因此没有要实际保存的令牌。这都是设计使然,\n 而不是您可以重新配置的。
\n
归档时间: |
|
查看次数: |
5576 次 |
最近记录: |