在 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”
$用戶=“根”
$密碼=“P@ssword”
$secureStringPwd = $密碼| 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
|
-----------------------------------------------------------------------------------------------------------------------