В. Как с помощью сценария проверить, существует ли группа в Active Directory (AD), и в случае отсутствия создать ее?
О. Если нужна универсальная, а не глобальная группа, то нужно заменить ADS_GROUP_TYPE_GLOBAL_GROUP на ADS_GROUP_TYPE_UNIVERSAL_GROUP в команде groupType Put. Также необходимо изменить значения domainController, contextpath и groupName.
'Назначить обработку ошибок.
on error resume NextConst ADS_GROUP_TYPE_GLOBAL_GROUP = &h2Const ADS_GROUP_TYPE_UNIVERSAL_GROUP = &h8Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000Const ADS_PROPERTY_APPEND = 3domainController="dalsdc01"contextpath="ou=Testing,dc=geniant,dc=net"groupName="testsecgroup"'Привязка к серверу LDAP.
set context=getObject("LDAP://" & domainController & "/" & contextpath)'Обработка ошибки и обратная связь
if err.number<>0 then wscript.echo "Error connecting to AD " & err.number,err.description err.Clearend ifset objGroup = GetObject("LDAP://CN="&groupName&","&contextpath) If Err.Number = "-2147016656" then 'If group was not found err.clear'Создать группу.
Set objGroup = context.Create("Group","cn="&groupName) if err.number<>0 then wscript.echo "Error creating group " & err.number,err.description err.Clear end if objGroup.Put "sAMAccountName", groupName objGroup.Put "description", "Testing Group" objGroup.Put "groupType", ADS_GROUP_TYPE_GLOBAL_GROUP Or _ ADS_GROUP_TYPE_SECURITY_ENABLED objGroup.setInfo if err.number<>0 then wscript.echo "Error modifying group " & err.number,err.description err.Clear end ifend if
WScript.Quit(0)