0
시스템에서 실행중인 서비스의 버전을 확인해야합니다. 그래서 나는 가까이 왔지만 그것을 알아낼 수 없습니다. 실행중인 서비스의 프로세스를 찾기 위해 Get-WmiObject
프로세스를 사용하고 있습니다. 그런 다음 "the"서비스 인 실행 파일의 경로를 되돌립니다. 그런 다음 상기 실행 파일의 FileVersion
을 검색하십시오.Get-WMIobject 프로세스를 사용하여 서비스 경로를 찾고 버전 정보 가져 오기
foreach ($Computer in $Computers) {
$zabbix = Get-WmiObject -Class Win32_Process -ComputerName $computer -Filter "name like '%zabbix%'" |
Select -ExpandProperty Path |
Get-ItemProperty |
Select-Object -Property VersionInfo |
? {$_.ProductVersion}
}
Write-Host "$zabbix - $Computer"
그런 종류의 작동하지만 원격 시스템보다는 로컬 호스트 경로를 당기는 것 같습니다. 이를 테스트하기 위해 $ 컴퓨터 변수를 설정하고 Get-WmiObject를 실행하여 .ProductVersion을 모두 실행하면 오류가 발생합니다. 'code'Get-ItemProperty : 'C : \ Program Files \ Zabbix Agent'경로를 찾을 수 없습니다. \ zabbix_agentd.exe '가 없습니다. 줄에 2 문자 : 42 + -ExpandProperty 경로 선택 | Get-ItemProperty) .VersionInfo.ProductVe ...'code' 해당 컴퓨터와 서비스에 로그온했습니다. 현재 실행 중입니다. – Tram
'Invoke-Command'로 래핑하여'VersionInfo'의 질의가 원격 컴퓨터에서 수행되도록 할 수 있습니다. 내가 할 대답을 편집했습니다. – BenH