troubleshooting Question

PowerShell: Append to an array from a file

Avatar of gerhardub
gerhardub asked on
.NET ProgrammingMicrosoft Legacy OSPowershell
2 Comments1 Solution1132 ViewsLast Modified:
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
Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 1 Answer and 2 Comments.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 2 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros