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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBS/WSH/JS - [решено] Как проверить наличие прав администратора

Ответить
Настройки темы
VBS/WSH/JS - [решено] Как проверить наличие прав администратора

Пользователь


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

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


Как проверить наличие прав администратора в Windows без вывода окон для пользователя?

Отправлено: 19:17, 09-05-2012

 

Ветеран


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

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


morres, как быть на машине без домена?

Отправлено: 10:52, 17-12-2012 | #11



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

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


Пользователь


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

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


Цитата Iska:
morres, как быть на машине без домена? »
вот, еще порылся и вот этот вариант работает и на доменной машине, и на отдельной:
Код: Выделить весь код
Option Explicit
Dim strComp, objLocalGroup, WshNetwork, item
strComp = "."
Set objLocalGroup = GetObject("WinNT://" & strComp & "/Администраторы")
Set WshNetwork = WScript.CreateObject("WScript.Network")
For Each item in objLocalGroup.Members
	if item.Name = WshNetwork.UserName Then Wscript.Echo "User " _
	& WshNetwork.UserName & " have administrator rights!"
Next
WScript.Quit()
Цитата Dark_Timur:
Как проверить наличие прав администратора в Windows без вывода окон для пользователя? »
Думаю, перенаправив вывод в файл, например, или цинично отсылая информационное письмо админам.
Вот пример того, как информация записывается в файл:
Код: Выделить весь код
Option Explicit
Dim strComp, objLocalGroup, WshNetwork, item, objFS, objFile
strComp = "."
Set objLocalGroup = GetObject("WinNT://" & strComp & "/Администраторы")
Set WshNetwork = WScript.CreateObject("WScript.Network")
For Each item in objLocalGroup.Members
	if item.Name = WshNetwork.UserName Then
	  Set objFS = CreateObject("Scripting.FileSystemObject")
	  if not objFS.FileExists("c:\admins.txt") Then 
		Set objFile = objFS.CreateTextFile("c:\admins.txt", True)
		objFile.WriteLine(WshNetwork.UserName)
	  else
		Set objFile = objFS.OpenTextFile("c:\admins.txt", 2)
		objFile.WriteLine(WshNetwork.UserName)
	  end if
	end if
Next
WScript.Quit()
Только сразу хочу предупредить, данный скрипт не сработает, если пользователь входит в группу "Администраторы" по средствам другой группы (например доменной). Но в моей ситуации это и не нужно! Смысл в том, что не добросовестные сотрудники тех. поддержки (которые имеют админские права на всех рабочих станциях домена, как раз по средствам доменной группы HelpDesk) переодически, "чтобы не заморачиваться", добавляют пользователей в локальные администраторы. Ну, типа чтоб не париться с настройками софта, который "из коробки" не работает без админских прав. Либо, настраивают рабочее место пользователя, временно дав ему админа, потом забывают убрать его из админов. Вот эту ситуацию я желаю отслеживать и присекать, а соответственно, этот скрипт более подходящий для меня в качестве основы. Понятно, что в идеале, надо бы добавить проверку языка установленной ОС, т.к. в домене могут быть и англоязычные винды, соответствеено "Set objLocalGroup = GetObject("WinNT://" & strComp & "/Администраторы" не сработает! Надо бы оптимальнее спланировать "доставку" информации до админов и т.п. По этому, я подчёркиваю, что этот скрипт не идеален, но для меня он является основой дальнейшего развития. Если будет вдохновение и свободное время, то доделаю его в будущем...

Последний раз редактировалось morres, 19-12-2012 в 10:13. Причина: добавление кода


Отправлено: 09:02, 19-12-2012 | #12


Ветеран


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

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


morres, всё не то. Одно возражение Вы сами нашли:
Цитата morres:
Только сразу хочу предупредить, данный скрипт не сработает, если пользователь входит в группу "Администраторы" по средствам другой группы »
Цитата morres:
…добавляют пользователей в локальные администраторы. »
Эти вопросы всегда решались административными методами.


Цитата morres:
Понятно, что в идеале, надо бы добавить проверку языка установленной ОС, т.к. в домене могут быть и англоязычные винды, соответствеено "Set objLocalGroup = GetObject("WinNT://" & strComp & "/Администраторы" не сработает! »
Используйте SID групп: Хорошо известные идентификаторы безопасности в операционных системах Windows для определения группы или её имени. В Вашем случае этого хватит. Ибо Вы ищете не наличие прав/привилегий администратора, а вхождение в определённые группы, прямо или опосредованно.

Отправлено: 10:55, 19-12-2012 | #13



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBS/WSH/JS - [решено] Как проверить наличие прав администратора

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как проверить в определённой директории наличие файлов (не подкаталогов!) ? SANIOK_AV Скриптовые языки администрирования Windows 26 21-06-2011 12:25
Debian/Ubuntu - Как принудительно проверить корневую систему на наличие ошибок? Grey_rnd Общий по Linux 7 07-04-2011 06:48
CMD/BAT - Как проверить наличие текста в файле mamont1 Скриптовые языки администрирования Windows 6 16-09-2010 16:32
Как проверить наличие процесса? Не флужу AutoIt 0 13-01-2010 07:31
Как проверить JavaScript'ом наличие Flash??? Krendebobel Вебмастеру 10 28-06-2005 16:17




 
Переход