Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Elven:
Rolenarim, а разве OU с указанными компьютерами нет? Это ведь указывалось в условии. »
Нет. По скриншоту видно, что «SC» — это группа безопасности.

Цитата Rolenarim:
и внутри нее подгруппа SC (не знаю как она характеризуется) »
Вот это — именно группа безопасности, а не OU.

В этом случае проверку можно обустроить следующим образом (на основе IsMember2, работает и для опосредованного членства в группе):
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strGroup

Dim objGroupList
Dim objADObject


strGroup = "SC"

Set objADObject = GetObject("LDAP://" & WScript.CreateObject("ADSystemInfo").ComputerName)

If IsMember(strGroup) Then
	' Place your code here
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
Function IsMember(ByVal strGroup)
	If (IsEmpty(objGroupList) = True) Then
		Set objGroupList = WScript.CreateObject("Scripting.Dictionary")
		Call LoadGroups(objADObject)
	End If
	
	IsMember = objGroupList.Exists(strGroup)
End Function
'=============================================================================

'=============================================================================
Sub LoadGroups(ByVal objADObject)
	Dim colstrGroups, objGroup, j
	
	objGroupList.CompareMode = vbTextCompare
	colstrGroups = objADObject.memberOf
	
	If (IsEmpty(colstrGroups) = True) Then
		Exit Sub
	End If
	
	If (TypeName(colstrGroups) = "String") Then
		colstrGroups = Replace(colstrGroups, "/", "\/")
		
		Set objGroup = GetObject("LDAP://" & colstrGroups)
		
		If (objGroupList.Exists(objGroup.sAMAccountName) = False) Then
			objGroupList.Add objGroup.sAMAccountName, True
			Call LoadGroups(objGroup)
		End If
		Exit Sub
	End If
	
	For j = LBound(colstrGroups) To UBound(colstrGroups)
		colstrGroups(j) = Replace(colstrGroups(j), "/", "\/")
		
		Set objGroup = GetObject("LDAP://" & colstrGroups(j))
		
		If (objGroupList.Exists(objGroup.sAMAccountName) = False) Then
			objGroupList.Add objGroup.sAMAccountName, True
			Call LoadGroups(objGroup)
		End If
	Next
End Sub
'=============================================================================
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:28, 28-09-2015 | #13