1

Тема: VBS: Узнать локальные права доменного пользователя

Как узнать локальные права доменного пользователя (Админ/Опытный пользователь/Пользователь/Гость)?

2

Re: VBS: Узнать локальные права доменного пользователя

Вот так узнаете группы локальные и доменные:

On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

arrComputers = Array("SKYWORK") 'ваш компьютер
username="DrW" 'ваш пользователь
For Each strComputer In arrComputers
   WScript.Echo
   WScript.Echo "=========================================="
   WScript.Echo "Computer: " & strComputer
   WScript.Echo "=========================================="

   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_GroupUser", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)

   For Each objItem In colItems
      if instr(objItem.PartComponent,username) then
          WScript.Echo "GroupComponent: " & objItem.GroupComponent
          WScript.Echo "PartComponent: " & objItem.PartComponent
          WScript.Echo
     end if
   Next
Next

3

Re: VBS: Узнать локальные права доменного пользователя

За код спасибо, попробую использовать.

А нет ли какого-то простого признака уровня прав?
Типа:
0 - админ
10- опытный пользователь
15- пользователь
.....

4

Re: VBS: Узнать локальные права доменного пользователя

А подскажите не могу найти как сделать это по сети, и в конце как ой нить отчет на каком компе кто является локальным админом. Сеть домен.

5

Re: VBS: Узнать локальные права доменного пользователя

Мне это тоже интересно, т.к. сейчас у нас идет процесс отбора прав локального администратора, очень удобно будет, представляю это так, опрашивает учетки в опредиленном контейнере и выдает таблицу

6

Re: VBS: Узнать локальные права доменного пользователя

Взято с alexm.ru: Кто находится в локальной группе Администраторы / Administrators

'/********************************************************************/
'/* Имя:   localgroupAdministrator.vbs
'/* Назначение:  Находим всех пользователей, кто находится в локальных администраторах и записываем их в лог-файл.
'/* Использование:  Поместить скрипт в Logon/StartUP GPO, например. При желании можно запустить через psexec.
'/*     Лог файл формируется в CSV формате. Копируем лог, переименовываем в *.csv и открываем в Excel'е.
'/* Язык:   VBScript
'/* Работает на:  Win2k, Win2k3, XP, Vista
'/* Сборка от:  22 мая 2009, 10:00
'/********************************************************************/

' Полный путь к файлу куда пишем лог, шаблон LocalGroupAdministrator-Текущая_ДАТА.log
strLogFile = "\\server\log$\LocalGroupAdministrator-" & Year(date) & Month(date) & ".log"

' Ниже этой строчки скрипт изменять НЕ рекомендуется!!!
'/********************************************************************/
' Выключаем стандартное сообщение об ошибках в скрипте. После обработки ошибки продолжить выполнение
On Error Resume Next
Set objNetwork = Wscript.CreateObject("Wscript.Network")
' Получаем имя компьютера
strComputer = objNetwork.ComputerName
' Находим все локальные группы с SID=S-1-5-32-544, Локальные администраторы
Set colItems = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")._
ExecQuery ("Select * From Win32_Group Where Domain = '" & strComputer & "' AND SID = 'S-1-5-32-544'")

' Объявляем переменные для работы с лог-файлом
Const numForReading = 1, numForWriting = 2, numForAppending = 8
Dim objFSO, objFile
' Для работы с файлом необходим объект FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Открываем лог-файл на добавление записей, если файла нет, то он создастся
Set objFile = objFso.OpenTextFile(strLogFile, numForAppending, True)

' Проходим по всем группам Локальных администраторов
For Each objItem in colItems
 ' Получаем имя группы
 strAdminGroup = objItem.Name
 Set objGroup = GetObject("WinNT://" & strComputer & "/" & strAdminGroup & ",group")
 ' Текущая дата. Не зависит от региональных настроек
 strDate = Day(date) & "." & Month(date) & "." & Year(date)
 ' Текущее время. Не зависит от региональных настроек
 strTime = Hour(time) & ":" & Minute(time) & ":" & Second(time)
 ' Формируем строку для записи в лог-файл. "Дата, время, компьютер, группа,"
 strResult = strDate & ";" & strTime & ";" & strComputer & ";" & strAdminGroup & ";"
 ' Проходим по всем пользователям в группе
 For Each objUser In objGroup.Members
  strUserPath = objUser.aDSPath
  strUserPath = Replace(strUserPath, "WinNT://", "")
  ' Ищем вхождение имени компьютера
  numMyPos = InStr (strUserPath, strComputer)
  ' Если нашли имя компьютера, тогда вырезаем имя домена
  If numMyPos > 0 Then
   strUserPath = Mid(strUserPath, numMyPos)
  End If
  ' Пишем строку в лог-файл. "Дата, время, компьютер, группа, имя пользователя, домен/имя пользователя, ПЕРЕВОД СТРОКИ"
  objFile.Write strResult & objUser.Name & ";" & strUserPath & vbCrLf
 Next
Next
' Закрываем лог-файл
objFile.Close

7

Re: VBS: Узнать локальные права доменного пользователя

Atomikon, прочтите справку по тэгам и пользуйтесь ими в будущем. Я поправил Ваш пост.

8

Re: VBS: Узнать локальные права доменного пользователя

Подобные темы есть и на этом форуме.
Например, эта: http://forum.script-coding.com/viewtopi … 188#p37188