
Issue Description
- I had to set HiddenFromAddressListsEnabled property of all mailboxes to $true or $false based on the input from a csv file.
- I ran the script but I didn’t set the expected result.
- Regardless of putting false or true in csv, everything was getting converted to True value.
Note : If you have experienced the similar issue, you can go straight to Fix Section.
input.csv Sample content

Powershell code – doesn’t work
$logMBerror = @() #input csv file. $csv = Import-Csv $home\desktop\input.csv foreach($eachline in $csv){ $HiddenFromAddressListsEnabled = $eachline.HiddenFromAddressListsEnabled $Mailbox = $eachline.Mailbox Write-host $mailbox has HiddenFromAddressListsEnabled value set to $HiddenFromAddressListsEnabled -ForegroundColor Green }

Reason
I looked into the reasons and found that regardless It has to do with these :
- Above code converted the values in string and that was the reason it didn’t work.
- Then i added [Boolean] in variable but it converted all false to True, It happened because powershell converts any string greater than 0 to a Boolean ‘true’.
$HiddenFromAddressListsEnabled = [Boolean]$eachline.HiddenFromAddressListsEnabled

Fix
You can use “[System.Convert]::ToBoolean()” or “[bool]::Parse()” to convert the value from string to boolean.
My testing confirmed that "[System.Convert]::ToBoolean()" works better than bool, So use this to convert the value and then use that in your code.
$HiddenFromAddressListsEnabled = [System.Convert]::ToBoolean($eachline.HiddenFromAddressListsEnabled)

Now, If you see TypeName is system.boolean and now my script works. You can use the similar to set any value, which accepts boolean value.
Powershell code – Rocks !
$csv = Import-Csv $home\desktop\input.csv foreach($eachline in $csv){ $HiddenFromAddressListsEnabled = [System.Convert]::ToBoolean($eachline.HiddenFromAddressListsEnabled) $Mailbox = $eachline.Mailbox Write-host $mailbox has HiddenFromAddressListsEnabled value set to $HiddenFromAddressListsEnabled -ForegroundColor Green }
Thank you for reading !
- Remove/Add Multiple IPs to/from a Receive Connector’s Remote IP Range
- Azure Guest Invitation – Why User is showing OTP Type
- Notify Remaining Office 365 Licenses
- Powershell – Setting Boolean value imported via CSV
- Okta Advanced Server Access Provisioning
Advertisements