当我运行以下代码时,我收到消息
“ Set-Item:无法将'System.Object []'转换为类型 参数所需的“ System.String”。指定的方法不是 支持”。
我正在尝试建立与不在Domain环境中的远程服务器的连接。 在没有脚本的情况下在Powershell控制台上单独运行Set-Item时,由于某种原因,它在无法运行的脚本上起作用。
$passwd = convertto-securestring -String <Password> -AsPlainText -Force
$cred = New-Object -Typename System.Management.Automation.PSCredential -ArgumentList "developer", $passwd
$server = Read-Host -Prompt 'Input your server IP'
Set-Item wsman:\localhost\client\TrustedHosts -Value $server -Force
$session = new-pssession -computername $server -credential $cred
我们将不胜感激
答案 0 :(得分:3)
在此处传递输入内容时,它应该是一个字符串值和一个对象,如果有逗号或其他东西,则$server
将不再保留为字符串。
要进行强制转换,可以通过强制类型转换将$server
显式转换为String类型:
[String]$server = Read-Host -Prompt 'Input your server IP'
进一步
我希望您在Set-Item
中硬编码服务器名称,然后查看是否收到错误消息。您大部分不会得到它。
Set-Item wsman:\localhost\client\TrustedHosts -Value 'YourServerHostname' -Force
因此,请在输入时验证您正在获得哪种输入。