3

私のコードは次のとおりです。

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}

そして、私は得ています:

パラメーター 'HiddenFromAddressListsEnabled' で引数の変換を処理できません。値 "System.String" を型 "System.Boolean" に変換できません。この型のパラメーターはブール値または数値のみを受け入れます。代わりに $true、$false、1 または 0 を使用してください。

メモ帳で表示した CSV ファイルの最初の 2 行を次に示します。

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

必要な変換を行うにはどうすればよいですか?

ありがとう。

4

2 に答える 2

7

注意してください-as0文字列がまたはの場合にのみ機能します1

両方とも("FALSE") -as [bool]戻っ[bool]("FALSE") てきTrueます!

使ったほうがいい

[System.Convert]::ToBoolean("FALSE")
[System.Convert]::ToBoolean("False")
[System.Convert]::ToBoolean(0)

またはパース

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

Parse文字列をパラメーターとしてのみ機能します。

于 2015-04-10T11:23:28.977 に答える
1

-as演算子を使用することもできます

-HiddenFromAddressListsEnabled ($_.HiddenFromAddressListsEnabled -as [bool])
于 2013-06-07T12:18:35.850 に答える