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」を使用しました
$user = "ルート"
$password = "パスワード"
$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
|
-----------------------------------------------------------------------------------------------------------------------