Hi All,
Trying to query the property of "ActiveSyncAllowedDeviceIDs" from the cmdlet "Get-CASMailbox."
I can get the short script to work with a single-user account, but cannot from a list of users in an array. Something I'm missing, but I cannot figure it out and I'm hoping you can help me out.
This works:
$out=@()
$nyusers=Get-ADUser somedude
foreach($nyuser in $nyusers)
{
$user = Get-CASMailbox $($nyuser.sAMAccountName)
$myUsers = New-Object System.Object
$myUsers | Add-Member -memberType Noteproperty -name sAMAccountName -value $($nyuser.sAMAccountName)
$myUsers | Add-Member -memberType Noteproperty -name Device0 -value $user.ActiveSyncAllowedDeviceIDs.Item(0)
$myUsers | Add-Member -memberType Noteproperty -name Device1 -value $user.ActiveSyncAllowedDeviceIDs.Item(1)
$myUsers | Add-Member -memberType Noteproperty -name Device2 -value $user.ActiveSyncAllowedDeviceIDs.Item(2)
$myUsers | Add-Member -memberType Noteproperty -name Device3 -value $user.ActiveSyncAllowedDeviceIDs.Item(3)
$out += $myUsers
}
$out | Export-Csv c:\adminscripts\output\NY_Users_ActiveSyncAllowedDeviceIDs.csv -NoTypeInformation
However, this does not:
$out=@()
$nyusers=get-aduser -Filter {comment -eq "A"} -SearchBase "ou=users,ou=ny,ou=SomeOU,dc=whoop,dc=dang,dc=org" | select name
foreach($nyuser in $nyusers)
{
$user = {Get-CASMailbox $nyuser.name}
$myUsers = New-Object System.Object
$myUsers | Add-Member -memberType Noteproperty -name Name -value $nyuser.Name
$myUsers | Add-Member -memberType Noteproperty -name Device0 -value $user.ActiveSyncAllowedDeviceIDs.Item(0)
$myUsers | Add-Member -memberType Noteproperty -name Device1 -value $user.ActiveSyncAllowedDeviceIDs.Item(1)
$myUsers | Add-Member -memberType Noteproperty -name Device2 -value $user.ActiveSyncAllowedDeviceIDs.Item(2)
$myUsers | Add-Member -memberType Noteproperty -name Device3 -value $user.ActiveSyncAllowedDeviceIDs.Item(3)
$out += $myUsers
}
$out | Export-Csv c:\adminscripts\output\NY_Users_ActiveSyncAllowedDeviceIDs.csv -NoTypeInformation
Error:
You cannot call a method on a null-valued expression.
At line:7 char:106
+ $myUsers | Add-Member -memberType Noteproperty -name Device1 -value $user.ActiveSyncAllowedDeviceIDs.Item <<<< (1)
+ CategoryInfo : InvalidOperation: (Item:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
You cannot call a method on a null-valued expression.
At line:8 char:106
+ $myUsers | Add-Member -memberType Noteproperty -name Device2 -value $user.ActiveSyncAllowedDeviceIDs.Item <<<< (2)
+ CategoryInfo : InvalidOperation: (Item:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
I can query successfully using the following information:
$nyusers=get-aduser -Filter {comment -eq "A"} -SearchBase "ou=users,ou=ny,ou=SomeOU,dc=whoop,dc=dang,dc=org" | select name
foreach($nyuser in $nyusers){Get-CASMailbox $nyuser.name | select ActiveSyncAllowedDeviceIDs}
Thank you very much for your time,
Mr Mister