在 Debian 11 上,我安装了 PowerShell 7.3.0。我正在测试是否可以在远程 Windows 计算机上运行命令。这是一个获取远程计算机主机名的简单示例。
#!/usr/bin/env pwsh
$username = "Administrator"
$password = "passgoeshere"
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $user, $secureStringPwd
Invoke-Command -ComputerName 192.168.xxx.xxx -Credential $cred -ScriptBlock { hostname }
我的问题是,当我运行该脚本时,仍然会提示我输入用户名和密码。
PowerShell credential request
Enter your credentials.
User:
这不是凭证的问题,因为当我手动输入它们时,它会给我远程计算机的主机名。
我认为这与 Linux 上的 PowerShell 读取凭据的方式有关。
我该怎么做才能让脚本不提示输入用户/密码?
编辑:该问题是一个拼写错误
答案1
剧本里有一个拼写错误
答案2
你的脚本没问题。将变量 $username 更改为 $user
我使用了“Invoke-VMSscript”
$用户=“root”
$密码 = “P@ssword”
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force
$cred = 新对象 System.Management.Automation.PSCredential -ArgumentList $user, $secureStringPwd
Invoke-VMScript -VM My_VM -ScriptText“主机名”-GuestCredential $cred -ScriptType Bash
ScriptOutput
-----------------------------------------------------------------------------------------------------------------------| My_VM
|
-----------------------------------------------------------------------------------------------------------------------