<?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=5878&amp;type=atom" />
	<updated>2011-06-10T19:08:14Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5878</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: AD изменить тип групп]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49074#p49074" />
			<content type="html"><![CDATA[<p><strong>Rialto</strong>, попробуйте приспособить к Вашей задаче алгоритм, подобный алгоритму сценария темы <a href="http://forum.script-coding.com/viewtopic.php?id=4421">VBScript: список групп домена, членом которых является пользователь</a>.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2011-06-10T19:08:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49074#p49074</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: AD изменить тип групп]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48979#p48979" />
			<content type="html"><![CDATA[<p>В одной OU в AD находится около 5000 групп, почти все они Security - Global, но есть и Security - Domain Local<br />Надо все глобальные группы перевести в универсальные, это сделать просто таким скриптом</p><div class="codebox"><pre><code>Const ADS_GROUP_TYPE_GLOBAL_GROUP = &amp;h2
Const ADS_GROUP_TYPE_UNIVERSAL_GROUP = &amp;H8
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &amp;H80000000

 
Set objGroup = GetObject(&quot;LDAP://OU=test,OU=Groups,dc=Fabricam,dc=Com&quot;) 
objGroup.Filter = Array(&quot;group&quot;)
For Each Group in objGroup

intgroupType = Group.Get(&quot;groupType&quot;)

if intgroupType AND ADS_GROUP_TYPE_GLOBAL_GROUP then

if intgroupType AND ADS_GROUP_TYPE_SECURITY_ENABLED then
Group.Put &quot;groupType&quot;, ADS_GROUP_TYPE_UNIVERSAL_GROUP OR ADS_GROUP_TYPE_SECURITY_ENABLED
else
Group.Put &quot;groupType&quot;, ADS_GROUP_TYPE_UNIVERSAL_GROUP
end if
end if
Group.SetInfo
next
wscript.quit</code></pre></div><p>Но когда групп много и почти все входят друг в друга возникают сложности.<br />Дело в том, что преобразовать из глобальной в универсальную. можно, только если изменяемая группа не является членом другой группы с глобальной областью действия.<br />Поэтому нужна Ваша помощь.<br />Пока вижу только такой алгоритм.<br />1)Найти группы которые никуда не включены (MembersOf - пусто), и преобразовать в универсальные<br />2)Найти группы которые включены в группы, которые не являются глобальными<br />3)Найти группы которые включены в группы из 1) и 2) и преобразовать в универсальные<br />4)Повторять 3 и расширением поиска на результат 3)</p><p>Помогите с кодом нахождения групп 1) и 2) и возможно стоит пересмотреть алгоритм.</p>]]></content>
			<author>
				<name><![CDATA[Rialto]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26530</uri>
			</author>
			<updated>2011-06-06T08:25:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48979#p48979</id>
		</entry>
</feed>
