Hello,
I am trying to create a custom object that just refuses to act as an array. Here is a skeleton copy of the whole script that i am working. It gives me the output when I call it one line at a time, but it seems to be over writing it self with every path. What I am looking to do is load ALL the data into an array so that I can work with it as an object (sort and send to screen and file). I am working with Powershell 2.0
Thank you for your help
Import-Module Active* # Initialize variables $Ping = $null $Computers = $null $namespace = "ROOT\CIMV2" $classname = "Win32_Volume" $OS = '*Server*' $Domain = ".domain.com" # Define Output Object $OutputProperties = @{Name = $Null Drive = $Null FreeSpace = $Null Capacity = $Null } $Output = New-Object PSObject –Prop $OutputProperties # Assign Values to print Function SetOutput ($Name,$Drive,$FreeSpace,$Capacity) { $Output.Name = $Name $Output.Drive = $Drive $Output.FreeSpace = $FreeSpace $Output.Capacity = $Capacity } # Searches Active Directory for Servers $Computers = Get-ADComputer -Filter {OperatingSystem -like $OS} -Properties CN, DNSHostName, OperatingSystem # Ping each Server to confirm that it exists on the physical network ForEach ($Computer in $Computers) { $Ping = Test-Connection -CN $Computer.DNSHostname -Count 1 -Quiet $Computer.DNSHostname = $Computer.DNSHostname.TrimEnd($Domain).ToUpper() IF($Ping -match 'True') { Try { $DriveDetail = Get-WmiObject -Class $classname -ComputerName $Computer.DNSHostname -ErrorAction Stop | Select Name, FreeSpace, Capacity | Where {$_.Name -like "C:\"} # If the query worked and the Service exists if ($DriveDetail) { #Data Retrieved $FreeSpaceGB = [Math]::round($DriveDetail.FreeSpace / 1GB,2) $DriveSizeGB = [Math]::round($DriveDetail.capacity / 1GB,2) SetOutput -Name $Computer.DNSHostname -Drive $DriveDetail.Name -FreeSpace $FreeSpaceGB -Capacity $DriveSizeGB } } Catch {} #Removed for now } } $Output