설치된 소프트웨어 버전을 빠르게 확인하는 방법

사용자 또는 사용자가 특정 소프트웨어를 설치했는지 여부와 해당 버전이 무엇인지 확인해야 하는 경우가 있습니다. 소프트웨어가 최신 상태인지 또는 특정 사용자를 위해 배포된 소프트웨어가 설치되어 있는지 확인할 수 있습니다. 나는 당신에게 당신이 파워 쉘을 확인하는 데 사용할 수있는 몇 가지 방법을 보여 드리겠습니다.

설치된 소프트웨어 버전을 확인하는 방법

빠른 탐색:레지스트리 쿼리

  • 이벤트 로그
  • 설치된 소프트웨어 목록을 원격으로 확인
    • 가져오기
    • 레지스트리 쿼리
    • 이벤트 로그
  • 설치된 소프트웨어를 확인하려면 항상 제어판의 프로그램 및 기능을 사용하거나 특정 앱을 검색하여 모든 디스크 파티션을 탐색할 수 있습니다. 당신은 시도하고 그것을 실행하고 수동으로 버전 번호를 검색하기 위해 시작 메뉴에서 응용 프로그램을 찾을 수 있습니다. 그러나,이러한 방법에 대 한 문제는 그들은”신속 하 고 자동”에서 멀리 그들은 수 있습니다. 파워 쉘을 사용하여 설치된 소프트웨어 버전을 확인하면 훨씬 더 빨리 필요한 데이터를 수집 할 수 있습니다.

    설치 소프트웨어 목록 가져오기

    첫 번째 방법은 간단한 쿼리를 붙여넣는 것만 큼 간단합니다:

    Get-WmiObject -Class Win32_Product
    설치된 소프트웨어 버전을 확인하는 방법

    또한 데이터를 쉽게 필터링하여 단일 공급업체의 특정 응용 프로그램을 해당 버전과 함께 찾을 수 있습니다.:

    Get-WmiObject -Class Win32_Product | where vendor -eq CodeTwo | select Name, Version
    설치된 소프트웨어 버전을 확인하는 방법

    매우 쉽지만,이 방법은 큰 단점이 있습니다.결과를 되 돌리는 데 꽤 시간이 걸립니다.

    설치된 소프트웨어에 대한 쿼리 레지스트리

    설치된 소프트웨어 목록을 가져오는 다른 방법이 레지스트리를 쿼리하고 있습니다. 다음 짧은 스크립트는 해당 버전과 함께 응용 프로그램 목록을 반환합니다:

    $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')}
    설치된 소프트웨어 버전을 확인하는 방법-레지스트리 쿼리

    이제 위에서 굵게 표시된 요소를 살펴보십시오. 즉,스크립트에서 반환되는 소프트웨어 목록은 로컬 시스템에 설치된 모든 소프트웨어입니다. 그러나 사용자 당 응용 프로그램을 설치할 수도 있습니다. 현재 로그된 사용자의 응용 프로그램 목록을 반환하려면”):

    $InstalledSoftware = Get-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')}

    이벤트 로그에서 최근에 설치된 소프트웨어 목록 가져오기

    Get-WinEvent -ProviderName msiinstaller | where id -eq 1033 | select timecreated,message | FL *

    설치된 소프트웨어를 찾는 이 방법은 기본적으로 이벤트 로그가 가장 오래된 레코드(순환 로깅)를 덮어쓰도록 설정되어 있기 때문에 최근에 추가된 요소에 대해 가장 안정적입니다.위에서 언급한 각 방법은 동일한 네트워크의 다른 컴퓨터에 설치된 소프트웨어를 확인하는 데에도 사용할 수 있습니다. 네트워크에 있는 모든 컴퓨터 이름 목록을 만드는 경우 각 루프 내에서 아래의 방법을 사용하여 단일 원격 컴퓨터에서 결과를 반환할 수 있습니다.

    각 스크립트의 컴퓨터 이름은 설치된 소프트웨어 및 해당 버전의 목록을 가져올 원격 컴퓨터의 이름을 나타냅니다.다시 말하지만,가장 쉬운 방법은 무리이지만 끝내는 데 약간의 시간이 걸릴 수 있습니다:

    Get-WmiObject Win32_Product -ComputerName $pcname | select Name,Version

    여기서$컴퓨터 이름은 쿼리할 컴퓨터의 이름입니다.

    설치된 소프트웨어 확인 원격 레지스트리 쿼리

    원격 레지스트리 쿼리는 약간 더 복잡하여 원격 레지스트리 서비스를 실행해야 합니다. 샘플 쿼리는 다음과 같습니다:

    $list=@()$InstalledSoftwareKey="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"$InstalledSoftware=::OpenRemoteBaseKey('LocalMachine',$pcname)$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 $pcname$obj | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $($thisSubKey.GetValue("DisplayName"))$obj | Add-Member -MemberType NoteProperty -Name "DisplayVersion" -Value $($thisSubKey.GetValue("DisplayVersion"))$list += $obj}$list | where { $_.DisplayName } | select ComputerName, DisplayName, DisplayVersion | FT
    설치된 소프트웨어 버전을 확인하는 방법-레지스트리 쿼리 테이블보기

    원격 이벤트 로그에서 최근에 설치한 소프트웨어 목록 확인

    :

    Get-WinEvent -ComputerName $pcname -ProviderName msiinstaller | where id -eq 1033 | select timecreated,message | FL *

    이 소프트웨어 버전을 사용하면 사용자에게 성공적으로 적용되었는지 여부를 쉽게 확인할 수 있습니다. 대상 컴퓨터 및 사용자의 이름만 있으면 됩니다:

    gpresult /s "PCNAME" /USER "Username" /h "Target location of theHTML report"

    그런 다음 지포네임을 찾아 적용 지포스 또는 거부 지포스 아래에 나열되어 있는지 확인합니다.아래 샘플은 적용된 그룹입니다.

    설치된 소프트웨어 버전을 확인하는 방법