PowerShell を使用して、リモート サーバーのリストからデータを収集し、それを JSON オブジェクトに変換しています。すべて正常に動作していますが、除外できないような非常に奇妙な出力が得られます。
結果をパイプして、Invoke-Command
プロパティを除外しようとしました。また、返されたハッシュ ファイルからアイテムを手動で削除しようとしましたが、削除できないようです。
私は何が欠けていますか?
編集:
ここで何が問題なのかを理解するために、単純化されていますが、まだ壊れているスクリプトがあります。
$returnedServer = @{}
$pass = cat "C:\...\securestring.txt" | convertto-securestring
$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist "UserName",$pass
$s = @("xx.xxx.xxx.xxx","xx.xxx.xxx.xxx")
foreach($server in $s)
{
$returnedServer.$server += ,(Invoke-Command -ComputerName $server -ScriptBlock
{
1
}-credential $mycred | select -ExcludeProperty PSComputerName,RunSpaceID,PSShowComputerName)
$returnedServer| ConvertTo-Json
どの出力:
{
"xx.xxx.xxx.xxx": [
{
"value": 1,
"PSComputerName": "xx.xxx.xxx.xxx",
"RunspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"PSShowComputerName": xxxx
}
],
"xx.xxx.xxx.xxx": [
{
"value": 1,
"PSComputerName": "xx.xxx.xxx.xxx",
"RunspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"",
"PSShowComputerName": xxxx
}
]
}