GPO에서 소프트웨어를 설치한 클라이언트 컴퓨터를 확인하는 방법이 있습니까?

GPO에서 소프트웨어를 설치한 클라이언트 컴퓨터를 확인하는 방법이 있습니까?

GPO를 사용하여 소프트웨어를 할당하면 클라이언트 컴퓨터가 다음에 재부팅할 때 이 소프트웨어가 설치될 것이라고 가정합니다. 하지만 실제로 고객 한 분 한 분을 찾아가 직접 확인해 보지 않고서는 확신할 수 없습니다. 어떤 클라이언트가 소프트웨어(예: WSUS)를 설치했는지 확인하는 방법이나 클라이언트에 설치된 소프트웨어 버전을 확인하는 스크립트를 작성하는 방법이 있습니까?

답변1

GPO에는 보고 메커니즘이 내장되어 있지 않습니다. 적절한 구성 관리 소프트웨어라면 설치된 항목을 보고하거나 스크립트를 작성할 수 있습니다.


경고Microsoft에서 권장하는 다음 코드에는 심각한 문제가 있습니다. 2009년의 "신속한 게시"(예: 긴급) 기술 자료 문서에 대한 링크가 포함된 이 답변 아래의 설명을 참조하세요.


비교적 새로운 컴퓨터(Vista/2008+)를 사용하는 경우 PowerShell을 사용하여 gwmi -comp computer_name Win32_Product설치된 소프트웨어 목록을 얻을 수 있습니다. 다음과 같은 정보를 반환합니다.

IdentifyingNumber : {D11F66FF-82B3-DDB8-1146-525370552BE1}
Name              : Windows Software Development Kit for Windows Store Apps
Vendor            : Microsoft Corporation
Version           : 8.59.25584
Caption           : Windows Software Development Kit for Windows Store Apps

이는 특정 소프트웨어의 다양한 버전이 설치된 컴퓨터 목록을 생성하고, 원하는 항목에 따라 CVS 또는 기타 ODBC 연결로 내보내거나 다양한 작업을 수행하도록 추가로 스크립트를 작성할 수 있습니다. 프로세스가 약간 까다롭기 때문에 여러 쿼리를 병렬로 실행하려면 이 "-AsJob"을 실행하는 방법을 살펴보는 것이 좋습니다.

답변2

질문이 너무 포괄적이므로 최대한 조언을 드릴 수 있습니다. 설치를 확인하는 방법을 생각해 보십시오. 예를 들어 %programfiles%\Company\SoftwareXYZ\abc.exe에 파일이 있으면 해당 앱이 성공적으로 설치되었음을 알 수 있습니까?

  • 레지스트리 키인가요?
  • 성공 키가 포함된 로그 파일이요?
  • 이벤트 로그?

이를 파악한 후에는 이를 확인하기 위한 스크립트를 작성해야 합니다.

그런 다음 어딘가에 결과를 보고해야 합니다. 예를 들어 COMPUTERNAME을 네트워크 공유에 파일로 게시할 수 있습니다. 예를 들어 배치 파일의 다음 줄은 이를 수행합니다.

echo. > \\MyServer\MyShare\%COMPUTERNAME%_Success.txt

마지막으로 해당 스크립트를 동일한 GPO의 시작 스크립트로 추가할 수 있습니다.

관련 정보