RU | EN | UA

Tip: Проверяем или Имя Пользователя уже существует в DOMAIN-е.

Версия для печати Отправить на e-mail
Tag it:
Digg
Technorati
YahooMyWeb
Delicious
blogmarks
Воскресенье, 02 Апрель 2006 | (7163)

VBSCRIPT - Tips Нащёл сегодня очень интерсный скрипт. Используя данный скрипт очень просто проверить или в AD Domain-e уже существует какой-нибуть пользователь с заданным именем. Это Vbscript. Запускается скрипт следущим образом:

cscript //nologo <Drive:>\Folder\FindUser.vbs sAMAccountName


Где sAMAccountName - это имя которое мы хотим проверить, например Pelekan

Если пользователь с именем Pelekan существует в DOMAIN-e, то FindUser.vbs выдаст нам значение sAMAccountName "distinguishedName", в виде:

  Pelekan "CN=Admin of N-Admin,CN=Users,DC=N-Admin,DC=COM"


Если пользователь с именем Pelekan не существует в Домаине, то FindUser.vbs выдаст нам значение FindUser sAMAccountName - NOT found., в виде:

FindUser Pelekan - NOT found.

Если запустить скрипт в таком виде:

  cscript //nologo <Drive:>\Folder\FindUser.vbs J*


то FindUser.vbs выдаст нам все результаты, где имя пользователя начинается на букву "J", это может выглядеть примерно так:

  Jane.Doe "CN=Jane Doe,CN=Users,DC=N-Admin,DC=COM"
Jennifer "CN=Jennifer Schulman,CN=Users,DC=N-Admin,DC=COM"
John.Doe "CN=John Doe,CN=Users,DC=N-Admin,DC=COM"
Jordan.Valley "CN=Jordan Valley,CN=Users,DC=N-Admin,DC=COM"


FindUser.vbs выглядит следуещим образом:

On Error Resume Next
Dim objConnection, objCommand, objRootDSE, strDNSDomain
Dim strFilter, strQuery, objRecordSet, objArgs, usr
Set objArgs = Wscript.Arguments
if objArgs.Count <> 1 Then Wscript.Echo "FindUser UserName - UserName required."
if objArgs.Count <> 1 Then Wscript.Quit
usr = "N"
sam = objArgs(0)
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOOBject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
strBase = "<LDAP://" & strDNSDomain & ">"
strFilter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=" & sam & "))"
strAttributes = "distinguishedName,sAMAccountName"
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
objCommand.CommandText = strQuery
objCommand.Properties("Page Size") = 99999
objCommand.Properties("Timeout") = 300
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    strDN = objRecordSet.Fields("distinguishedName")
    strSAM = objRecordSet.Fields("sAMAccountName")
    usr = "Y"
    Wscript.Echo strSAM & " """ & strDN & """"
    objRecordSet.MoveNext
Loop
objConnection.Close
Set objConnection = Nothing
if usr = "N" Then Wscript.Echo "FindUser " & sam & " - NOT found."
Set objCommand = Nothing
Set objRootDSE = Nothing
Set objRecordSet = Nothing

 

Комментарии

  1. Цитировать #2 Челябинск
    2009-12-0412:38:44 Ну спасибо, чтоли, за информацию о том, что [url=http://chelport.ru/article3307.html]уже существует[/url]...
  2. Цитировать #1 читатель
    2008-10-2112:05:33 спасибо

Добавить комментарий

Жирный Курсив Подчеркнутый Ссылка Цитата


Автотранслитерация: выключена

Защитный код

Powered by jComments
Created by Pelican Design Studio - Web 2 You / Hosting by TheystemAdministrator.com / Tech. Support ITStuff.ca - Tips and Tricks for IT Stuff / Фин. Спонсор WEX
Templates by Pelican Web Studio Templates by Pelican Web Design Studio