Get Installed Agents Windows Server

When I did need to check the Installed Agents in a lot of servers in the network, I decide to try it with an PowerShell Script, this script below do my job easy and quick. This did let me create a file report with each server information that I was looking for.

# Clear Screen
LocalPath=pwd
CLS
Write-Host Starting Checking proccess..

#Set the PWD to a LocalPath Vab
$LocalPath=pwd

#Set the name of the file with all Server List to be checked
$FileName="ServerList.csv"
 
#Concatenate all the Path and File Name to check
$ListPath=$LocalPath.ToString() + "\" + $FileName.ToString()

#Read  the file  with all servers list and 
$Servers = Get-Content $ListPath

# Loop to check each Server in the list
foreach ($server in $Servers) { 
        Echo "**********************************************************************"
        Echo "Checking host: $Server"  
        Echo "**********************************************************************"
        #Query WMI information from remote system
        $S_error = ""
		Write-Host "Testing connection to $server"
		if (Test-Connection -ComputerName $server -Quiet -count 2){
			 Write-Host "$server is alive and reacheble"
			$Err = Get-WMIObject Win32_BIOS -computername $server -ErrorVariable S_Error -ErrorAction SilentlyContinue
        if ($S_error[0])
        {
	        Write-Host "Having problem connecting to WMI on $Server... "
			Echo "Having problem connecting to WMI on $Server... "
            Echo "**********************************************************************"
            Echo " "

        }
        else
        {
			Write-Host "Getting Information from $Server... "
            $OSInfo = Get-CimInstance win32_OperatingSystem -ComputerName $Server
            $OSInfo | Select-Object -Property @{Name="ComputerName";expression={$_.CSNAME}},@{Name="OS Name";expression={$_.Caption}},@{Name="ServicePack";expression={$_.ServicePackMajorVersion}},@{Name="Architecture";expression={$_.OSArchitecture}},Version,OperatingSystemSKU,@{Name='InstallDate';expression={$_.InstallDate}}
            $Net = Get-WMIObject Win32_NetworkAdapterConfiguration -ComputerName $server -filter ipenabled="true" | Format-List  
            # Echo "CUMPUTER NAME: $Server "
            Echo " NETWORK INFO:" $Net 
            Echo "**********************************************************************"
            $Agents = Get-WmiObject -Query "select * from win32_service where name like'%AmazonSSMAgent%'" -ComputerName $server | Format-Table -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status
            Echo " AGENTS FOUND at : $Server " $Agents
            Echo "**********************************************************************"
            Echo " " 
            Echo " "
        }
		}else{
			Echo "THIS COMPUTER IS NOT ALIVE: $server"
			Echo "**********************************************************************"
            Echo " "
		}
      }
      

As you can see in the code, you’ll need a file called ServerList.csv in the same folder where you all ready have the past script, please remember that yo must to save the script as “.ps1” file extension.