Quantcast
Channel: PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources
Viewing all articles
Browse latest Browse all 6937

Adding items to an array

$
0
0

I wrote this script but I’m having problems adding the strings of each loop to the $ActiveSyncReport psobject.  I get the error that is the bottom.  I want to build up the $ActiveSyncReport Array from the data collected in each For-Each loop and append to a csv file so I can pass a report to someone.  I’m running this on an Exchange 2010 server so I’m limited to Powershell 2 functions

 

$OU="OU=Staff,OU=Users,OU=Here,DC=There,DC=Back,DC=Again"

Add-PSSnapinMicrosoft.Exchange.Management.PowerShell.E2010

Import-ModuleActiveDirectory

$ActiveSyncReport=new-objectpsobject

$Users=get-aduser-filter {SamAccountName  -like"*"} -searchbase$OU-properties*

$users|ForEach-Object{

$StaffPerson=$_.SamAccountName

$mail=Get-Mailbox-Identity$StaffPerson|Select-Object-expandpropertyPrimarySmtpAddress

 

 

$userdisplayname=Get-ActiveSyncDevice-mailbox$StaffPerson|  Select-Object-expandpropertyuserdisplayname

$devicetype=Get-ActiveSyncDevice-mailbox$StaffPerson|Select-Object-expandpropertydevicetype

$deviceos=Get-ActiveSyncDevice-mailbox$StaffPerson|Select-Object-expandpropertydeviceos

$deviceuseragent=Get-ActiveSyncDevice-mailbox$StaffPerson|Select-Object-expandpropertydeviceuseragent

$DeviceTelephoneNumber=Get-ActiveSyncDevice-mailbox$StaffPerson|Select-Object-expandpropertyDeviceTelephoneNumber

 

$DeviceModel=Get-ActiveSyncDeviceStatistics-Mailbox$_.SamAccountName |Select-Object-expandpropertyDeviceModel

$LastSyncAttemptTime=Get-ActiveSyncDeviceStatistics-Mailbox$_.SamAccountName |Select-Object-expandpropertyLastSyncAttemptTime

$LastSuccessSync=Get-ActiveSyncDeviceStatistics-Mailbox$_.SamAccountName |Select-Object-expandpropertyLastSuccessSync

 

#This is just to see what the strings are as expected

Write-Host$StaffPerson

Write-Host$mail

Write-Host$userdisplayname

Write-Host$devicetype

Write-Host$deviceos

Write-Host$deviceuseragent

Write-Host$DeviceTelephoneNumber

Write-Host$DeviceModel

Write-Host$LastSyncAttemptTime

Write-Host$LastSuccessSync

 

#I’m only running the first line here to cut down on all the error messages

 

$ActiveSyncReport|add-membernoteproperty-nameDisplayName$userdisplayname

#$ActiveSyncReport | add-member noteproperty mail $mail

#$ActiveSyncReport | add-member noteproperty DeviceModel $DeviceModel

#$ActiveSyncReport | add-member noteproperty devicetype $devicetype

#$ActiveSyncReport | add-member noteproperty deviceos $deviceos

#$ActiveSyncReport | add-member noteproperty deviceuseragent $deviceuseragent

#$ActiveSyncReport | add-member noteproperty LAstSyncAttemptTime $LAstSyncAttemptTime

#$ActiveSyncReport | add-member noteproperty LastSuccessSync  $LastSuccessSync

#$ActiveSyncReport | add-member noteproperty DeviceTelephoneNumber  $DeviceTelephoneNumber

 

#Outputs the CSV file

#$ActiveSyncReport| Export-csv 'C:\PurgeUserRecords\From HR\ActiveSyncReport.csv' -append

}

 

Add-Member : Cannot add a member with the name "DisplayName" because a member with tha

t name already exists. If you want to overwrite the member anyway, use the Force param

eter to overwrite it.

At C:\scripts\ActiveSyncReport.ps1:32 char:31

+ $ActiveSyncReport | add-member <<<<  noteproperty -name DisplayName $userdisplayname

    + CategoryInfo          : InvalidOperation: (@{DisplayName=}:PSObject) [Add-Membe

   r], InvalidOperationException

    + FullyQualifiedErrorId : MemberAlreadyExists,Microsoft.PowerShell.Commands.AddMe

   mberCommand

 


Viewing all articles
Browse latest Browse all 6937

Trending Articles