态
我正在将Carbon Black的CLI密码在端点上拉。我有一个摘要,可以从服务器中摘下密码并将其放入变量。
我需要将包含密码的变量传递给命令,但是该变量未正确传递(命令无关(。
我硬编码一个具有实际值的变量,并将其运行到我的命令中,并且效果很好。
因此,在简而言之
有关如何将拉密码转换为正确格式的任何提示?
我检查了getType((。全名和它们都相同的格式。
$resource = "SEOMRESORUCE" + $Computer
$url = "SOMEEML SOURCE"
$configlist = "C:Tempconfiglistwithdeleteditems.xml"
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
# download the CL file
Write-Host "Finding CLI Password"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($url, $configlist)
$webResponsey = [System.Net.WebRequest]::Create($resource)
$webResponsey.Method = "GET"
$webResponsey.ContentType='application/json; charset=utf-8'
$webResponsey.Headers.Add("X-Auth-Token", "SOMETOKEN")
$Response= $webResponsey.GetResponse()
$ResponseStream = $Response.GetResponseStream()
$ReadStream = New-Object System.IO.StreamReader $ResponseStream
$jsonresult = $ReadStream.ReadToEnd()
$saveme = $jsonresult | Out-String
$cliPassword = $saveme -replace '.*CLIPassword":"([^"]*)".*', '$1'
Write-Host "CLI password is " $cliPassword #this provides the same value as $clipassword2
$cliPassword2 = 'TAWR-SOWR-POYS-YAEZ'
$cliPassword -eq $cliPassword2 #this equals False for whatever reason
$cliPassword = $saveme -replace '(?s).*CLIPassword":"([^"]*)".*', '$1'
您需要单线修改器((?s)
(,因为您的JSON转换将包括LineFeed和/或Carriagare返回。默认情况下,REGEX .
字符与Newline字符不匹配。没有单线修改器,只有-Replace
操作员将匹配带有Clipassword文本的行。非匹配线仍将输出。