如何在Exchange Online的Powershell代码中将字符串转换为布尔值?

fin*_*rre 2 powershell exchange-server

我的代码是:

Import-Csv "$env:userprofile\Desktop\ExternalContacts.csv"| foreach {New-MailContact -Name $_.Name -DisplayName $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName | Set-MailContact -Identity $_.Name -HiddenFromAddressListsEnabled $_.HiddenFromAddressListsEnabled}
Run Code Online (Sandbox Code Playgroud)

我得到了:

无法在参数'HiddenFromAddressListsEnabled'上处理参数转换.无法将值"System.String"转换为"System.Boolean"类型,此类型的参数仅接受布尔值或数字,请使用$ true,$ false,1或0代替.

以下是我在记事本中查看的CSV文件的前两行:

Name,FirstName,LastName,ExternalEmailAddress,HiddenFromAddressListsEnabled
Ted Testington,Ted,Testington,ted.testington@blah.com,$true

我该如何进行必要的转换?

谢谢.

Rub*_*nov 6

小心-as.它只适用于字符串是01.

双方("FALSE") -as [bool][bool]("FALSE") 会返回True!

最好使用

[System.Convert]::ToBoolean("FALSE")
[System.Convert]::ToBoolean("False")
[System.Convert]::ToBoolean(0)
Run Code Online (Sandbox Code Playgroud)

或者解析

[bool]::Parse("FALSE")
[bool]::TryParse("FALSE", $outputVariable) # Will not raise an exception if the parse fails
Run Code Online (Sandbox Code Playgroud)

Parse 仅适用于字符串作为参数.