# Retrieve Server Software using the Utility UninstallView.exe - https://www.nirsoft.net/utils/uninstall_view.html # Gerard O'Rourke # Date 24/03/2021 # Version 1.1 $version=1.1 $utilityPath = "C:\X-Support\Utilities\UninstallView" $currentFolder=Get-Location $tempFolder = "$currentFolder\temp" $finalFolder = "$currentFolder\ServerSoftwareReport" $outputFileName="WinServerSoftwareDetails_$(get-date -f yyyy-MM-dd_HH-mm-ss).csv" $waitTimer=30 $servers = "ucce-lab-rgr-a","ucce-lab-hds-a" Write-Output "Software Retrieval Powershell Script" Write-Output "Version: $version`n" Write-Output "Starting..." If(!(test-path $tempFolder)) { New-Item -ItemType Directory -Force -Path $tempFolder } Write-Output "Removing Temp Folder of any CSV files before creating new files..." Remove-Item $tempFolder\*.csv foreach ($server in $servers) { Write-Output "Polling Server $server" & $utilityPath\UninstallView.exe /LoadFrom 4 /ComputerName $server /AutoStartRemoteRegistry 1 /LoadingSpeed 3 /scomma "$tempFolder\$server.csv" Start-Sleep -s 1 } Write-Output "Waiting $waitTimer seconds for Output Files to be created...." Start-Sleep -s $waitTimer Write-Output "Adding Filename to a Column in the CSV File" foreach ($server in $servers) { if ($server -like '*rgr*') { $component="Rogger" $type="CCE" } elseif ($server -like '*hds*') { $component="AW-HDS-DDS" $type="CCE" } elseif ($server -like '*pg*') { $component="PG" $type="CCE" } elseif ($server -like '*ops*') { $component="CVP Ops" $type="CVP" } elseif ($server -like '*cvp*') { $component="CVP CallServer" $type="CVP" } else{ $component="UNKNOWN" $type="UNKNOWN" } $CSV = Import-CSV -Path $currentFolder\temp\$server.csv $CSV | Select-Object *,@{N='ComputerName';Expression={$server}},@{N='Type';Expression={$type}},@{N='Component';Expression={$component}} | Export-CSV $tempFolder\$server.csv -NoTypeInformation } Write-Output "Merging Data into one CSV File" If(!(test-path $finalFolder)) { New-Item -ItemType Directory -Force -Path $finalFolder } Get-ChildItem -Filter .\temp\*.csv | Select-Object -ExpandProperty FullName | Import-Csv | Export-Csv $finalFolder\$outputFileName -NoTypeInformation -Append echo If the scrpit has run successfully, the report will be available in the folder $finalFolder echo If the Report Name is: $outputFileName Write-Output "Finished! Pausing for 10 seconds..." Start-Sleep -s 10