Доброго времени суток! Прошу помощи в решении вопроса.
Возникла необходимость извлекать из рабочих станций перечень установленного ПО. Для этого использую командный файл do.bat, который, в свою очередь, запускает VBS скрипт test.vbs.
Содержимое do.bat
Содержимое test.vbs (выводит в stdout перечень установленного ПО)
При выполнении на раб. станции
возникают проблемы с отображением названий программ на русском языке. Если запустить вручную из консоли C:\do.bat, то русские названия отображаются без проблем. Что можно предпринять для корректного отображения русских символов?
Возникла необходимость извлекать из рабочих станций перечень установленного ПО. Для этого использую командный файл do.bat, который, в свою очередь, запускает VBS скрипт test.vbs.
Содержимое do.bat
cscript C:\test.vbs
sComputer="localhost"
Wscript.StdOut.Write InstalledApplications(sComputer)
Function InstalledApplications(node)
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Set oRegistry = _
GetObject("winmgmts:{impersonationLevel=impersonat e}!\\" _
& node & "/root/default:StdRegProv")
sBaseKey = _
"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninsta ll\"
iRC = oRegistry.EnumKey(HKLM, sBaseKey, arSubKeys)
For Each sKey In arSubKeys
iRC = oRegistry.GetStringValue( _
HKLM, sBaseKey & sKey, "DisplayName", sValue)
If iRC <> 0 Then
oRegistry.GetStringValue _
HKLM, sBaseKey & sKey, "QuietDisplayName", sValue
End If
If sValue <> "" Then
InstalledApplications = _
InstalledApplications & sValue & vbCrLf
End If
Next
End Function
Wscript.StdOut.Write InstalledApplications(sComputer)
Function InstalledApplications(node)
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Set oRegistry = _
GetObject("winmgmts:{impersonationLevel=impersonat e}!\\" _
& node & "/root/default:StdRegProv")
sBaseKey = _
"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninsta ll\"
iRC = oRegistry.EnumKey(HKLM, sBaseKey, arSubKeys)
For Each sKey In arSubKeys
iRC = oRegistry.GetStringValue( _
HKLM, sBaseKey & sKey, "DisplayName", sValue)
If iRC <> 0 Then
oRegistry.GetStringValue _
HKLM, sBaseKey & sKey, "QuietDisplayName", sValue
End If
If sValue <> "" Then
InstalledApplications = _
InstalledApplications & sValue & vbCrLf
End If
Next
End Function
zabbix_agentd -t system.run[C:\do.bat]
Comment