Detecting installed programs via registry

前端 未结 9 1727
清酒与你
清酒与你 2020-12-01 01:55

I need to develop a process that will detect if the users computer has certain programs installed and if so, what version. I believe I will need a list with the registry loc

9条回答
  •  我在风中等你
    2020-12-01 02:18

    You can use a PowerShell script to look at registers and get the installed program details. The script bellow will generate a file with the complete list of installed programs. Save it with ".ps" extension and double click the file.

    #
    # Generates a full list of installed programs.
    #
    
    # Temporary auxiliar file.
    $tmpFile = "tmp.txt"
    
    # File that will hold the programs list.
    $fileName = "programas-instalados.txt"
    
    # Columns separator.
    $separator = ","
    
    # Delete previous files.
    Remove-Item $tmpFile
    Remove-Item $fileName
    
    # Creates the temporary file.
    Create-Item $tmpFile
    
    # Searchs register for programs - part 1
    $loc = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall
    $names = $loc |foreach-object {Get-ItemProperty $_.PsPath}
    foreach ($name in $names)
    {
        IF(-Not [string]::IsNullOrEmpty($name.DisplayName)) {      
            $line = $name.DisplayName+$separator+$name.DisplayVersion+$separator+$name.InstallDate
            Write-Host $line
            Add-Content $tmpFile "$line`n"        
        }
    }
    
    # Searchs register for programs - part 2
    $loc = Get-ChildItem HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
    $names = $loc |foreach-object {Get-ItemProperty $_.PsPath}
    foreach ($name in $names)
    {
        IF(-Not [string]::IsNullOrEmpty($name.DisplayName)) {      
            $line = $name.DisplayName+$separator+$name.DisplayVersion+$separator+$name.InstallDate
            Write-Host $line
            Add-Content $tmpFile "$line`n"
        }
    }
    
    # Sorts the result, removes duplicate lines and
    # generates the final file.
    gc $tmpFile | sort | get-unique > $filename
    

提交回复
热议问题