我的控制台应用程序中有以下代码可以使用PowerShell获取服务器信息:
string PsCmd = "add-pssnapin VMware.VimAutomation.Core; $vCenterServer = '" + vCenterName.Trim() + "';$vCenterAdmin = '" + vCenterUsername.Trim() + "' ;$vCenterPassword = '" + vCenterPassword + "';" + System.Environment.NewLine;
PsCmd = PsCmd + "$VIServer = Connect-VIServer -Server $vCenterServer -User $vCenterAdmin -Password $vCenterPassword;" + System.Environment.NewLine;
PsCmd = PsCmd + "Get-VMHost " + System.Environment.NewLine;
现在,脚本在我们拥有的150台服务器上运行得很好,但是在一台服务器上,我得到了这个例外:
行:1字符:131+. !*******(********6'__*;*****';+~意外标记'h‘在表达式或语句中。一行:1字符:135+. **(******';';+~字符串缺少终止符:‘。= ABC
它正在引发密码变量上的错误。在我的例子中,我从外部RESP获得密码。现在密码具有以下格式:
\"************
其中以两个保留字符\"
开头,我得到的JSON对象如下所示。那么,问题是密码包含保留的一组字符\"
吗?我怎么才能解决这个问题?
发布于 2018-11-12 14:46:52
你需要逃离"
。在PowerShell中使用`
字符(例如`"
)执行此操作
试试这个:
string PsCmd = "Add-PSSnapin VMware.VimAutomation.Core; $vCenterServer = '" + vCenterName.Trim() + "'; $vCenterAdmin = '" + vCenterUsername.Trim() + "'; $vCenterPassword = \"" + vCenterPassword.Replace("\"", "`\"") + "\";" + System.Environment.NewLine;
https://stackoverflow.com/questions/53264505
复制相似问题