Powershell 新对象不能包含破折号(-),但不能包含“;需要";

Powershell 新对象不能包含破折号(-),但不能包含“;需要";,powershell,export-to-csv,Powershell,Export To Csv,我正在创建一个新对象,用于将值导出到CSV: New-Object -TypeName PSObject -Property @{ host_name = ($server.name).ToLower() address = $IPAddress host_is_collector = "no" host-preset = "windows-server" } | Select-Obj

我正在创建一个新对象,用于将值导出到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
问题是其中一行包含破折号(主机预设)。我当然会简单地将其更改为下划线,但我的CSV需要将此值设置为破折号。我也可以在整个csv被创建后做一个替换,但这看起来很脏。 有什么办法可以用dash吗

我的错误消息是:

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
哈希文本中的键后缺少“=”运算符。
在Z:\Scripts\Testscripts\ScanServers\u和\u check\u nagiosV7.ps1:336 char:16

+主机预设您只需将
主机预设
属性名称作为字符串处理,方法是将其括在引号中

New-Object -TypeName PSObject -Property @{ "host-preset" = "windows-server" }

只需将
主机预设
属性名称作为字符串处理,方法是将其括在引号中

New-Object -TypeName PSObject -Property @{ "host-preset" = "windows-server" }