问题陈述:我想在 Hyper-V 创建的虚拟机中运行一些脚本。虚拟机有用户名和密码。
问题是每当我使用 invoke-command 或 Enter-pssession 时,它都会提示输入用户名和密码。我不需要每次都手动输入详细信息,并且应该能够通过脚本来完成此操作。
您将需要以Hyper-V管理员(主机上的本地管理员)身份运行脚本,但您可以通过将
[pscredential]
对象导出到磁盘来自动化提供VM凭据的过程:
# Enter the credentials when prompted
$VMCredentials = Get-Credential
$VMCredentials |Export-CliXml path\to\credentials.xml
Export-CliXml
将自动使用 DPAPI 使用从当前安全上下文派生的密钥来加密密码部分 - 这意味着只有同一台计算机上的同一用户才能再次解密。
为了使用这些存储的凭据,只需调用
Import-CliXml
:
$VMCredentials = Import-CliXml path\to\credentials.xml
Invoke-Command { ... } -VMName VM01 -Credential $VMCredentials