Add software.ps1

This commit is contained in:
djorgensen 2025-11-06 16:28:54 -07:00
parent e148e6df9e
commit bde650f7af

45
software.ps1 Normal file
View File

@ -0,0 +1,45 @@
$allComputers=Get-Content -Path C:\temp\pctest.txt
foreach($computer in $allComputers)
{
$isonline=test-connection -Quiet -count 2 -ComputerName $computer
if($isonline)
{
Write-Host -ForegroundColor Green "$computer is online";
$output=@()
$remotereg=0
if ($service=Invoke-Command -ComputerName $computer -ScriptBlock {Get-Service -Name RemoteRegistry}
{
Get-Service -ComputerName $computer -Name RemoteRegistry | Start-Service
$remotereg=1
Write-Host -ForegroundColor Green "$computer remote registry started";
}
$InstalledSoftwareKey="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
$InstalledSoftware=[microsoft.win32.registrykey]::OpenRemoteBaseKey('LocalMachine', $computer)
$RegistryKey=$InstalledSoftware.OpenSubKey($InstalledSoftwareKey)
$SubKeys=$RegistryKey.GetSubKeyNames()
Foreach ($key in $SubKeys){
$thisKey=$InstalledSoftwareKey+"\\"+$key
$thisSubKey=$InstalledSoftware.OpenSubKey($thisKey)
$obj = New-Object PSObject
$obj | Add-Member -MemberType NoteProperty -Name "ComputerName" -Value $computer
$obj | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $($thisSubKey.GetValue("DisplayName"))
$obj | Add-Member -MemberType NoteProperty -Name "DisplayVersion" -Value $($thisSubKey.GetValue("DisplayVersion"))
$obj | Add-Member -MemberType NoteProperty -Name "InstallDate" -Value $($thisSubKey.GetValue("InstallDate"))
$output += $obj
}
$output | where { $_.DisplayName } | select ComputerName, DisplayName, DisplayVersion, InstallDate | FT
$output=@()
if ($remotereg=1)
{
Get-Service -ComputerName $computer -Name RemoteRegistry | Stop-Service
Write-Host -ForegroundColor Green "$computer remote registry stopped";
}
}
else
{
Write-Host -ForegroundColor Red "`n$computer is offline `n";
}
}