Is There A Way To Retrieve A List Of The Services That Are Installed On A Remote Computer
At that place are situations where y'all demand to check whether you or your users have certain software installed, and what is its version. Y'all may want to bank check if the software is upwards to date or if your GPO-deployed software has been installed for a certain user. I'll bear witness you several methods you tin can utilise to bank check that with PowerShell.

Quick navigation:
- Bank check installed software listing locally
- Get-WmiObject
- Registry query
- Consequence log
- Check installed software list remotely
- Get-WmiObject
- Registry query
- Event log
- Cheque if GPO-deployed software was applied successfully
Bank check what's installed on your computer
To check what software is installed, you can always use Programs and Features in your Command Console or browse all deejay partitions in search of a specific app. Yous can even try and find an app in the Get-go menu in gild to launch it and search for its version number manually. However, the problem with those methods is that they are every bit far from "quick and automatic" as they tin exist. Checking the installed software versions by using PowerShell allows you to get together information that y'all demand much quicker.
Go installed software list with Become-WmiObject
The first method is as uncomplicated equally pasting a unproblematic query:
Get-WmiObject -Form Win32_Product

You can also easily filter the information to detect specific applications from a unmarried vendor, together with their versions, for example:
Get-WmiObject -Class Win32_Product | where vendor -eq CodeTwo | select Name, Version

Despite existence very like shooting fish in a barrel, this method has a major downside – it takes quite a while to return the results.
Query registry for installed software
Another method of getting a list of installed software is querying the registry. The following short script returns the listing of applications together with their versions:
$InstalledSoftware = Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall" foreach($obj in $InstalledSoftware){write-host $obj.GetValue('DisplayName') -NoNewline; write-host " - " -NoNewline; write-host $obj.GetValue('DisplayVersion')}

At present, have a quick look at the HKLM element bolded above. Information technology means that the list of software returned by the script is all the software installed on the LM – local car. However, applications can be installed per user equally well. To render a list of applications of the currently logged user, change HKLM to HKCU (CU stands for "current user"):
$InstalledSoftware = Become-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall"
foreach($obj in $InstalledSoftware){write-host $obj.GetValue('DisplayName') -NoNewline; write-host " - " -NoNewline; write-host $obj.GetValue('DisplayVersion')}
Getting the list of recently installed software from the Event Log
If y'all want to check only the recently installed software, you can use the following cmdlet to search through the Upshot Log.
Go-WinEvent -ProviderName msiinstaller | where id -eq 1033 | select timecreated,message | FL *
This method of finding out installed software is virtually reliable for the recently added elements because, by default, event logs are set to overwrite the oldest records (circular logging).
Larn more than about using PowerShell to check Windows Event Logs and filtering results
Get a list of installed software remotely
Each of the methods mentioned above tin can also exist used to cheque software installed on other machines in the same network. If you create a list of all the computer names in your network, you tin use the methods below within a Foreach loop to return results from more than than a single remote PC.
$pcname in each script stands for the name of the remote calculator on which you desire to get a list of installed software and their versions.
Become installed software list with remote Get-WmiObject command
The following cmdlet is, once again, the easiest in the bunch, just tin have some time to finish:
Become-WmiObject Win32_Product -ComputerName $pcname | select Name,Version
where $pcname is the name of the computer you want to query.
Check installed software with remote registry query
Remote registry queries are slightly more complicated and require the Remote Registry service to be running. A sample query is as follows:
[electronic mail protected]() $InstalledSoftwareKey="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall" $InstalledSoftware=[microsoft.win32.registrykey]::OpenRemoteBaseKey('LocalMachine',$pcname) $RegistryKey=$InstalledSoftware.OpenSubKey($InstalledSoftwareKey) $SubKeys=$RegistryKey.GetSubKeyNames() Foreach ($key in $SubKeys){ $thisKey=$InstalledSoftwareKey+"\\"+$primal $thisSubKey=$InstalledSoftware.OpenSubKey($thisKey) $obj = New-Object PSObject $obj | Add-Member -MemberType NoteProperty -Proper noun "ComputerName" -Value $pcname $obj | Add-Fellow member -MemberType NoteProperty -Name "DisplayName" -Value $($thisSubKey.GetValue("DisplayName")) $obj | Add-Fellow member -MemberType NoteProperty -Name "DisplayVersion" -Value $($thisSubKey.GetValue("DisplayVersion")) $list += $obj } $list | where { $_.DisplayName } | select ComputerName, DisplayName, DisplayVersion | FT

Check recently installed software list from the Effect Log remotely
Checking a user's consequence log remotely requires adding a single attribute (-ComputerName) to the cmdlet used before:
Get-WinEvent -ComputerName $pcname -ProviderName msiinstaller | where id -eq 1033 | select timecreated,bulletin | FL *
Check if a GPO-deployed software was applied successfully
If you lot practical a sure software version via GPO, you lot can easily check if this GPO was successfully applied to a user or not. All you need is the GPResult tool and names of the target calculator and user:
gpresult /s "PCNAME" /USER "Username" /h "Target location of the HTML written report"
So, expect for your GPO name and check if it is listed under Applied GPOs or Denied GPOs. The sample GPO below is in the Practical GPOs group.

Is There A Way To Retrieve A List Of The Services That Are Installed On A Remote Computer,
Source: https://www.codetwo.com/admins-blog/how-to-check-installed-software-version/
Posted by: woffordmazincusithe1969.blogspot.com
0 Response to "Is There A Way To Retrieve A List Of The Services That Are Installed On A Remote Computer"
Post a Comment