1

値を CSV にエクスポートするための新しいオブジェクトを作成しています。

New-Object -TypeName PSObject -Property @{
            host_name = ($server.name).ToLower()
            address = $IPAddress
            host_is_collector = "no"
            host-preset = "windows-server"
        } | Select-Object host_name,address,host-preset | Export-Csv -Path $nConf_import_host_file

問題は、行の 1 つにダッシュ (ホスト プリセット) が含まれていることです。もちろん、単純にアンダースコアに変更しますが、CSV ではこの値をダッシュ​​にする必要があります。作成後に csv 全体で -replace を実行することもできますが、それは汚いようです。ここでダッシュを使用する方法はありますか?

私のエラーメッセージは次のとおりです。

Missing '=' operator after key in hash literal.
At Z:\Scripts\Testscripts\ScanServers_and_check_nagiosV7.ps1:336 char:16
+                 host-preset <<<<  = "windows-server"
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : MissingEqualsInHashLiteral
4

1 に答える 1

7

host-presetプロパティ名を引用符で囲んで文字列として扱うだけです。

New-Object -TypeName PSObject -Property @{ "host-preset" = "windows-server" }
于 2012-01-18T12:48:16.330 に答える