无法在 Linux 上使用 PowerShell 自动执行身份验证过程

无法在 Linux 上使用 PowerShell 自动执行身份验证过程

在 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
|  
-----------------------------------------------------------------------------------------------------------------------

相关内容