Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Узнать содеожание локальной группы

Ответить
Настройки темы
CMD/BAT - [решено] Узнать содеожание локальной группы

Аватара для SANIOK_AV

Старожил


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

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


Доброго времени суток!
Код: Выделить весь код
net localgroup
перечисляет все группы,
Код: Выделить весь код
net user
перечисляет всех пользователей.
Подскажите пожалуйста, как можно в cmd узнать содержание (какие пользователи являются членами) одной из локальной групп в ОС ХР?
Заранее благодарен!

Отправлено: 11:44, 01-12-2011

 

Старожил


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

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


После localgroup укажите имя группы (через пробел).
Названия групп, содержащие пробелы, заключайте в кавычки.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:30, 01-12-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


При помоши 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. Прочитал не внимательно вопрос и дал ответ не в тему, но может кому пригодиться

Последний раз редактировалось Loran_rus, 01-12-2011 в 14:17. Причина: Добавлен P.S.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:08, 01-12-2011 | #3


Аватара для SANIOK_AV

Старожил


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

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


Спасибо всем большое!

Отправлено: 15:20, 01-12-2011 | #4


Старожил


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

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


Для решения столь простой задачи с помощью сценария вполне достаточно возможностей провайдера 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:55, 02-12-2011 | #5


Новый участник


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

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


я так получаю список пользунов имя которых c BUH начинается в файл
Код: Выделить весь код
net localgroup "Пользователи удаленного рабочего стола" | findstr /B /I /M "BUH" > C:\TMP\USER_BUH.LST

Отправлено: 20:39, 28-04-2020 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Узнать содеожание локальной группы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как узнать название группы залогиненного пользователя? avolkov2009 Скриптовые языки администрирования Windows 3 06-06-2011 11:59
Разное - [решено] Узнать когда было изменено имя рабочей группы viter_alex Microsoft Windows 2000/XP 2 07-07-2009 13:02
Разное - Как Узнать Доступную Информацию О Компьютерах В Локальной Сети roches Microsoft Windows 2000/XP 5 21-01-2009 01:31
КАК УЗНАТЬ КТО ПОДКЛЮЧАСЯ К МАШИНЕ ПО ЛОКАЛЬНОЙ СЕТИ Guest Microsoft Windows NT/2000/2003 6 22-07-2003 06:10
как узнать кто/чем/когда пользовался из (локальной)сети? Guest Microsoft Windows NT/2000/2003 7 06-11-2002 16:54




 
Переход