<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: AD изменить тип групп]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5878</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5878&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: AD изменить тип групп».]]></description>
		<lastBuildDate>Fri, 10 Jun 2011 19:08:14 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: AD изменить тип групп]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=49074#p49074</link>
			<description><![CDATA[<p><strong>Rialto</strong>, попробуйте приспособить к Вашей задаче алгоритм, подобный алгоритму сценария темы <a href="http://forum.script-coding.com/viewtopic.php?id=4421">VBScript: список групп домена, членом которых является пользователь</a>.</p>]]></description>
			<author><![CDATA[null@example.com (Dmitrii)]]></author>
			<pubDate>Fri, 10 Jun 2011 19:08:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=49074#p49074</guid>
		</item>
		<item>
			<title><![CDATA[VBS: AD изменить тип групп]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=48979#p48979</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Rialto)]]></author>
			<pubDate>Mon, 06 Jun 2011 08:25:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=48979#p48979</guid>
		</item>
	</channel>
</rss>
