Link to home
Create AccountLog in
Avatar of gerhardub
gerhardub

asked on

PowerShell: Append to an array from a file

I have the following code that is used to populated a $ServerList (starting a $ServerList[1]), but I'd also like to be able to read a file of servernames... and append those names to the end of the ServerList string type.

The issue is, that $ServerList is a pre-dementioned array.  That reason for this is because I get the error:

"Cannot index into a null array."

If attempt to run the code below:

# Grab list of servers use QAD then select the name object, and then short the results by the name

$a = (Get-QADComputer -OSName 'Windows*Server*' | Select-Object name | Sort-Object name )
$b = ($a | ForEach-Object {$_.name})

# Create the list of servers array, but start the elements from 1, not zero.

$ServerList = New-Object string[] ($b.Count+2)

for ($j=0; $j -le $b.count; $j++) { $ServerList[$j+1]=$b[$j]}


As yiu can see, there is a whole lot of swapping going on here... primarily because the output of $a gives me headers, and the populating of $b starts at zero (e.g. $b[0]).  Which causes issues with friggen Excel, so we then dump the contents of $b into $ServerList.

So then I take a CSV file, and I want to add it to the $ServerList array, but I get an ERROR... because the array is not dimmensioned to fit to additional strings:

# Load CSV list of additional servers NOT on the Domain and add them to the list of servers

$a = Import-Csv y:\AddititionalServerList.csv
$b = ($a | ForEach-Object {$_.name})

What I'd like to do, is simply append these to the end of the $ServerList array:

$ServerList = $ServerList+$b

But that doesn't work...

Can anyone work this out for me?

GB
ASKER CERTIFIED SOLUTION
Avatar of soostibi
soostibi
Flag of Hungary image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of gerhardub
gerhardub

ASKER

Awesome...

I figure a few hundred more learning experiences like this and I'll actually know what I'm doing.

That's exactly the information I needed to fix this.

Thank YOU!