VBS. Скрипт для получения пользователей с разрешенным RAS

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:| :) :wink: :D :lol: :( :cry: 8) :o :oops: :? :x :P :evil: :twisted: :roll: :!: :?: :idea: :arrow: :mrgreen:
Ещё смайлики…

Markdown is OFF

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: VBS. Скрипт для получения пользователей с разрешенным RAS

VBS. Скрипт для получения пользователей с разрешенным RAS

UncleFather » 10 мар 2014 18:16, Пн

VBS скрипт, выгружающий пользователей домена у которых на вкладке «Входящие звонки» включена опция «Разрешить доступ» в файл RRAS_VPN_Users.txt (Источник):

Код VBS:

Код: Выделить всё

'***************************************************
'This script will pull all users that have Dial-in
'access from Active Directory and the OU the account
'is in and writes the values out to the file RRAS_VPN_Users.txt
'***************************************************
Option Explicit

On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Dim objConnection, objCommand, objRootDSE
Dim objRecordSet, ou 
Dim namingContext, fso, outFile 
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")
namingContext = objRootDSE.Get("defaultNamingContext")
set objRootDSE = nothing

Set fso = CreateObject("Scripting.FileSystemObject") 
Set outFile = fso.CreateTextFile("RRAS_VPN_Users.txt", True) 
objCommand.Properties("Page Size") = 1000 
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
objCommand.CommandText = _ 
"SELECT Name FROM 'LDAP://" & namingContext & _
"' WHERE objectCategory='user' " & _
"AND msNPAllowDialin = TRUE"

Set objRecordSet = objCommand.Execute 
objRecordSet.MoveFirst 
Do Until objRecordSet.EOF
' Call function to find OU from computer name
ou = getOUByUserName(objRecordSet.Fields("Name").Value)
outFile.WriteLine(objRecordSet.Fields("Name").Value & _
",'" & ou & "'")  
objRecordSet.MoveNext 
Loop
outFile.Close

WScript.Echo "Complete"

WScript.Quit

function getOUByUserName(byval UserName)

' *** Function to find ou/container of user object *** 
DIM namingContext, ldapFilter, ou 
DIM cn, cmd, rs 
DIM objRootDSE 
set objRootDSE = getobject("LDAP://RootDSE")
namingContext = objRootDSE.Get("defaultNamingContext")
set objRootDSE = nothing

ldapFilter = "<LDAP://" & namingContext & _
">;(&(objectCategory=User)(name=" & userName & "))" & _
";distinguishedName;subtree"

set cn = createobject("ADODB.Connection") 
set cmd = createobject("ADODB.Command") 
cn.open "Provider=ADsDSOObject;"
cmd.activeconnection = cn
cmd.commandtext = ldapFilter

set rs = cmd.execute 
if rs.eof <> true and rs.bof <> true then
ou = rs(0)
ou = mid(ou,instr(ou,",")+1,len(ou)-instr(ou,","))
getOUByuserName = ou

end if 
rs.close 
cn.close 
end function 

Скачать:

RRAS_VPN_Users.rar
(2.1 КБ) 754 скачивания

Просто запускаем скрипт и получаем в той же папке файлик с именами пользователей домена, которым разрешены входящие звонки:

01.jpg

PS: аналогичная команда PowerShell, выводящая списко пользователей, которым разрешены входящие звонки:

Код: Выделить всё

Get-ADUser -LDAPFilter "(&(objectCategory=person)(objectClass=user)(msNPAllowDialin=TRUE))"

Вернуться к началу