В статье рассматривается простой скрипт, который способен показать SID локального или доменного пользователя.
Хоть эта статья и является неким плагиатом давно известной информации, но я бы всё же сказал, что это импровизация моих знаний и идей, которая пригождается хоть и не повседневно, но всё же иногда нужна. А в конце данной статьи будет ссылка на другую статью, в которой нам очень пригодиться данный скрипт.
Но вначале немного теории (для тех, кто не в теме).
Нужно всего две вещи знать о SID:
- SID - это некие секретные идентификационные данные (дословный перевод с английского). На внешний вид представляет из себя набор цифр, обременённых фигурными скобками.
- SID есть в компьютере абсолютно у всего - у того, что можно пощупать (материнская плата, видеокарта, сетевая карта и т.д., а также и сам компьютер), а также и у того, что нельзя пощупать, но можно увидеть на экране монитора (программы, внешний вид explorer-а, а также пользователи).
И вот эту всё барахло помнит компьютер и хранит в реестре. Я надеюсь, что я достаточно просто объяснил, но если кому-то мало, то флаг в руки и гугл в помощь. Я не хочу загружать народ унылыми и скучными манами, но без сидов операционная система как ёжик в тумане!
Итак сам скрипт SIDfromLogin.vbs:
On Error Resume Next
Dim FLogin, a
FLogin = InputBox("Введите логин пользователя в формате: ~домен\логин~ или ~имя компьютера\логин~")
a = InStr(1, FLogin, "\")
if a>0 then
Dim strComputer, Domain, Login, Zapros
Domain = Left(FLogin, a-1)
Login = Mid(FLogin,a+1)
strComputer = "."
Dim objWMIService, objAccount
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Zapros = "Win32_UserAccount.Name='" & Login & "',Domain='" & Domain & "'"
Set objAccount = objWMIService.Get (Zapros)
Wscript.Echo objAccount.SID
Set objWMIService = Nothing
Set objAccount = Nothing
Else
Wscript.Echo ("Неправильно введён логин пользователя! Запустите скрипт заново и введите правильно логин пользователя!")
End If
WScript.Quit
Скрипт может работать как с локальными, так и с доменными учётками.
На заметку - как Вы думаете, что будет, если в строчке (strComputer = ".") точку заменить на имя хоста в сети? Я надеюсь, что Вы уже догадались и сможете эту мысль использовать в своих идеях, а я лишь предлагаю другую статью, в которой данный скрипт очень пригождается.
А также данный скрипт является обратным вот такому скрипту.
Жизнь админа должна быть проще.