Узнать содеожание локальной группы
Доброго времени суток!
перечисляет все группы,
перечисляет всех пользователей.
Подскажите пожалуйста, как можно в cmd узнать содержание (какие пользователи являются членами) одной из локальной групп в ОС ХР?
Заранее благодарен!
|
После localgroup укажите имя группы (через пробел).
Названия групп, содержащие пробелы, заключайте в кавычки.
|
При помоши DsGet Group, файл можно взять из %SystemRoot%\System32\Dsget.exe в Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2008
Код:
dsget group "CN=Имя группы,CN=Users,DC=Ваш домен,DC=Зона домена" -members
Или можно например таким VBS скриптом
Код:
Dim objArgs, strGroupDN
set objArgs = WScript.Arguments
if objArgs.Count <> 1 then
Dim objRootDSE
set objRootDSE = GetObject("LDAP://RootDSE")
strGroupDN = "cn=Имя группы,cn=Users," & objRootDSE.Get("defaultNamingContext")
else
strGroupDN = objArgs.Item(0)
end if
Dim dicSeenGroupMember
set dicSeenGroupMember = CreateObject("Scripting.Dictionary")
Wscript.Echo "Members of " & strGroupDN & ":"
DisplayMembers "LDAP://" & strGroupDN, " ", dicSeenGroupMember
Function DisplayMembers (strGroupADsPath, strSpaces, dicSeenGroupMember)
Dim objGroup, objMember
set objGroup = GetObject(strGroupADsPath)
for each objMember In objGroup.Members
Wscript.Echo strSpaces & objMember.Get("distinguishedname")
if objMember.Class = "group" then
if dicSeenGroupMember.Exists(objMember.ADsPath) then
Wscript.Echo strSpaces & " ^ already seen group member " & "(stopping to avoid loop)"
else
dicSeenGroupMember.Add objMember.ADsPath, 1
DisplayMembers objMember.ADsPath, strSpaces & " ", dicSeenGroupMember
end if
end if
next
End Function
P.S. Прочитал не внимательно вопрос и дал ответ не в тему, но может кому пригодиться
|
Для решения столь простой задачи с помощью сценария вполне достаточно возможностей провайдера WinNT:
Код:
Dim objArgs, objGroup, objWsNet, objItem
Dim strDomain, strGroup, strList
Set objArgs = WScript.Arguments
If objArgs.Count > 0 Then
For i = 0 To objArgs.Count - 1
strGroup = objArgs.Item(i)
Set objWsNet = CreateObject("WScript.Network")
strDomain = objWsNet.UserDomain
Set objWsNet = Nothing
On Error Resume Next
Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group")
If Err.Number = 0 Then
For Each objItem In objGroup.Members
If LCase(objItem.Class) = "user" Then strList = strList & objItem.Name & vbNewLine
Next
Set objGroup = Nothing
If Len(strList) > 0 Then
WScript.Echo strList
Else
WScript.Echo "В группе " & UCase(strGroup) & " нет пользователей."
End If
Else
WScript.Echo "Ошибка " & Err.Number & " доступа к объекту группы " & UCase(strGroup) & vbNewLine & _
Err.Description
Err.Clear
End If
strList = vbNullString
Next
End If
Set objArgs = Nothing
WScript.Quit 0
|
я так получаю список пользунов имя которых c BUH начинается в файл
Код:
net localgroup "Пользователи удаленного рабочего стола" | findstr /B /I /M "BUH" > C:\TMP\USER_BUH.LST
|
Время: 18:15.
© OSzone.net 2001-