Needed to gather all the IPs on a bunch of remote servers.
Here is my script to pull all the IPs from a server and dump each IP to a CSV file with each IP on its own row.
##### Set Variables #######
$fileCount = 0
$List = @()
$i = 0
#get the list of servers to scan from serverlist.txt
$serverlist = "C:\scripts\computers.txt"
#get the count of servers for updates to the user.
$fileCount = (Get-Content $serverlist | Measure-Object).Count
#Loop the server list.
foreach ($server in Get-Content $serverlist) {
#increment the number of records proccessed
$i++
#Write to the screen whats happening.
Write-Progress -activity "Connecting to server $server" -status "Scanning: $i of $($fileCount)" -percentComplete (($i / $fileCount) * 100)
#do a try if there is an issue spit out the error.
try {
#IF there is an error stop and go to the next record.
$ErrorActionPreference = 'Stop'
$configs=Get-WmiObject -ComputerName $server win32_networkadapterconfiguration | select IPaddress, ServiceName, Description | where IPaddress -ne $null
Write-Progress -activity "Scanning server $server" -status "Scanning: $i of $($fileCount)" -percentComplete (($i / $fileCount) * 100)
#Set the array for the output.
if($configs.IPaddress.Count -eq 1){
$List += [pscustomobject]@{
'ComputerName' = $server
'IPaddress' = $configs.IPaddress.Item(0)
'Description' = $configs.Description
}
}
else{
for($thecount=1; $theCount -le $configs.IPaddress.Count){
$List += [pscustomobject]@{
'ComputerName' = $server
'IPaddress' = $configs.IPaddress.Item($thecount - 1)
'Description' = $configs.Description.Item($thecount - 1)
}
$thecount++
}
}
}
catch {
$List += [pscustomobject]@{
'ComputerName' = $server
'IPaddress' = "Error"
'ServiceName' = "Error"
'Description' = "Error"
}
}
}
write-progress -activity "Completed."
$randomString = Get-Date -format M.d.yyyy.HH.mm.ss
try{
md "c:\scripts\export\"
}
Catch{
}
$csvFileName = 'c:\scripts\export\' + $randomString + '_GetServerIPs.csv'
$csvFileName
$List | Export-Csv $csvFileName -noType
Invoke-Item $csvFileName
No comments:
Post a Comment