无法将“ System.Object []”转换为类型“ System.String”

时间:2019-05-30 08:40:10

标签: string powershell

当我运行以下代码时,我收到消息

  

“ 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

我们将不胜感激

1 个答案:

答案 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

因此,请在输入时验证您正在获得哪种输入。