<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Vbs: AD определение пола пользователя для создание списка рассылки]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7024&amp;type=atom" />
	<updated>2012-03-29T13:09:24Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7024</id>
		<entry>
			<title type="html"><![CDATA[Vbs: AD определение пола пользователя для создание списка рассылки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58554#p58554" />
			<content type="html"><![CDATA[<p>Бывает нужно обычно на праздники создать список рассылки, да еще чтобы отдельно для мужчин или для женщин. Предлогаю сценарий для тестирования.</p><div class="codebox"><pre><code>

Set fso = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set OpenFile = Fso.OpenTextFile(&quot;Список рассылки.txt&quot;,8,True,-1)
Set OpenFile1 = Fso.OpenTextFile(&quot;Те кто не попал в список.txt&quot;,8,True,-1)
&#039; Запрос для тех кто не нужен (системные, ошибочно названные, бесполое отчество), обратный запросу для тех кто нужен
Set cServAll2 = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}\\.\root\directory\ldap&quot;). _
	ExecQuery(&quot;SELECT ds_name FROM DS_user Where DS_msExchHomeServerName IS NOT NULL AND NOT (ds_name like &#039;%чна[ ]%&#039; OR ds_name like &#039;%вна[ ]%&#039; OR ds_name like &#039;%шна[ ]%&#039; OR ds_name like &#039;%вич[ ]%&#039; OR ds_name like &#039;%мич[ ]%&#039; OR ds_name like &#039;%ьич[ ]%&#039;)&quot;)
&#039; Запрос для тех кто отключен
Set cServAll = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}\\.\root\cimv2&quot;). _
	ExecQuery(&quot;SELECT FullName FROM Win32_UserAccount Where Disabled = True&quot;)
&#039; Запрос для тех кто нужен в данном примере женщины
Set cServAll1 = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}\\.\root\directory\ldap&quot;). _
	ExecQuery(&quot;SELECT ds_name FROM DS_user Where DS_msExchHomeServerName IS NOT NULL AND ds_name like &#039;%чна[ ]%&#039; OR ds_name like &#039;%вна[ ]%&#039; OR ds_name like &#039;%шна[ ]%&#039; OR ds_name like &#039;%ова&#039;&quot;)

z = 0
&#039; Цыкл для тех кто нужен
For Each Result1 In cServAll1
	
	&#039; Цыкл для тех кто отключен
	For Each Result2 IN cServAll
		&#039; Сровниваем и находим кто не отключен
		If Result1.ds_name &lt;&gt; Result2.FullName Then
			z = 0
		Else
			&#039; При совпадении выходим из первого цыкла чтобы побыстрее было
			z = 1
			Exit For
		End If
	Next

	If z = 0 Then
		&#039; пишем в список ds_name включенного пользователя
		OpenFile.WriteLine Result1.ds_name
	End If

Next

&#039; Цыкл для тех кто не нужен
For Each Result11 In cServAll2
	&#039; Пишем тех кто не нужен
	OpenFile1.WriteLine Result11.ds_name

Next

OpenFile1.Close
OpenFile.Close

Wscript.Echo &quot;Готово&quot;

&#039; Запросы
&#039;SELECT * FROM DS_user Where DS_msExchHomeServerName IS NOT NULL AND ds_name Like &#039;%вич[ ]%&#039; OR ds_name like &#039;%мич[ ]%&#039; OR ds_name like &#039;%ьич[ ]%&#039;
&#039;SELECT * FROM DS_user Where DS_msExchHomeServerName IS NOT NULL AND ds_name like &#039;%чна[ ]%&#039; OR ds_name like &#039;%вна[ ]%&#039; OR ds_name like &#039;%шна[ ]%&#039; OR ds_name like &#039;%ова&#039;</code></pre></div><p>По выполнению сценария нужно будет проверить файл &quot;Те кто не попал в список.txt&quot; для выявления тех кто по разным причинам не отфильтровался.<br />Сценарий гарантируте точность если пользователи в AD заводятся с отчеством и без ошибок, ну и конечно если у вас не работают одни иностранцы <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[Vasek]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27769</uri>
			</author>
			<updated>2012-03-29T13:09:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58554#p58554</id>
		</entry>
</feed>
