<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Выбор определенных строк из реестра]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10591&amp;type=atom" />
	<updated>2015-04-20T07:09:48Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10591</id>
		<entry>
			<title type="html"><![CDATA[VBS: Выбор определенных строк из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=93498#p93498" />
			<content type="html"><![CDATA[<p>Добрый день!<br />Есть скрипт который групповыми политиками запускается на компьютерах пользователей, и собирает все информацию об установленном ПО.<br /></p><div class="codebox"><pre><code>&#039; Скрипт по сбору информации об установленном ПО
&#039; информация берется из ветки реестра
&#039; HLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
&#039; файлы пишуться на сетевой ресурс обзываясь по имени пользователя
&#039; и имени компьютера : пользователь_компьютер

Const HKEY_LOCAL_MACHINE = &amp;H80000002
strComputer = &quot;.&quot;
Const ForWriting = 2
Const ForAppending = 2
Set WSN = WScript.CreateObject(&quot;WScript.Network&quot;)
Computer = WSN.ComputerName
User = WSN.UserName

&#039; указываем что oReg будет лезть в реестр
Set oReg=GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\&quot; &amp; _
strComputer &amp; &quot;\root\default:StdRegProv&quot;)

&#039; Указываем куда именно в реестре мы полезем
strKeyPath = &quot;SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall&quot;
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

&#039; указываем что мы еще и файлы создавать будем
Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
&#039; и куда их ложить будем тоже, вместо sw_ можно указать сетевой путь
Set objTextFile = objFSO.OpenTextFile(&quot;\\192.168.1.3\WMI_script\&quot; &amp; User &amp; &quot;_&quot; &amp; Computer &amp; &quot;.txt&quot;, _
ForWriting, True)

&#039; Перебор неких subkey в массиве arrSubKeys,
&#039; на самом деле шаримся по подразделам Uninstall&#039;a
For Each subkey In arrSubKeys

strKeyPath = &quot;SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&quot; &amp; subkey
&#039;Ищем в подразделах строковой параметр &quot;DisplayName&quot;
strValueName = &quot;DisplayName&quot;
&#039;Выдираем из реестра его значение - strValue
oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath, _
strValueName,StrValue
&#039;Проверяем чему равно значение &quot;DisplayName&quot;
&#039;если тупо пусто, то просто тупо присваиваем i=1
&#039;а если не пусто пишем в файл значение strValue
If strValue &lt;&gt; Empty Then
objTextFile.Write strValue
objTextFile.Writeline
Else i=1
end if

Next</code></pre></div><p>Появилась необходимость собирать не всю информацию, а только выборочно, например проверить присутствие на компьютерах Microsoft office, или продукты фирмы Adobe.<br />Подскажите можно-ли допилить скрипт, что-бы можно было указывать какое именно ПО искать ?</p>]]></content>
			<author>
				<name><![CDATA[Алексей87]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33015</uri>
			</author>
			<updated>2015-04-20T07:09:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=93498#p93498</id>
		</entry>
</feed>
