|
http://digilander.libero.it/Cenati Elenco gruppi del dominio |
|
|
|
||
|
|
Elenco gruppi del dominio Una volta accertato che l'utente appartiene ad un certo gruppo, può essere interessante sapere a cosa serve quel gruppo. Anche perchè a volte i nomi sono necessariamente condensati e difficilmente traducibili. Questo script elenca in un foglio excel i nomi dei gruppi e la loro descrizione così come riportata da ADSI. Il nome del dominio corrente è ottenuta automaticamente dalla variabile d'ambiente. E' comunque possibile assegnarlo manualmente a DOMAIN_NAME. Lo script crea un'istanza di Excel, la rende visibile e ci aggiunge un foglio. Poi si collega all'active directory system e filtra solo i gruppi. Per scrivere sul foglio di excel uso una subroutine che mette i due dati (nome del gruppo e descrizione) nelle celle di colonna A e B. Poi incrementa il numero di riga in modo da scrivere nella riga successiva alla prossima chiamata. Infatti la variabile nIndex è definita a livello di main program e non di sub (altrimenti si azzererebbe ad ogni chiamata). Una volta visti anche gli altri script (elenco utenti, dati di un utente) non è difficile metterli insieme per scrivere un programma che incroci in una tabella i gruppi e gli utenti per sapere con un solo tabulato chi appartiene ad un gruppo e a quali gruppi appartiene un utente. Copia il programma riportato qui sotto in un file con estensione ".vbs" oppure scarica l'archivio zip contentente lo script.
'************************************************
' File: ListaGruppi.vbs
' Autore: Giovanni Cenati
' Elenca i gruppi del dominio corrente
' Li scrive su un foglio excel.
' Lists group names and descriptions
' in an excel sheet.
' http://digilander.libero.it/Cenati
'************************************************
Set WshShell = WScript.CreateObject("WScript.Shell")
' Ottiene il nome del dominio e dell'utente
DOMAIN_NAME = WshShell.ExpandEnvironmentStrings("%USERDOMAIN%")
'EXCEL: crea oggetto, lo rende visibile, aggiunge un foglio di lavoro.
Dim oXL
Set oXL = WScript.CreateObject("Excel.Application")
oXL.Visible = TRUE
oXL.WorkBooks.Add
Dim nIndex
nIndex = 1 'Riga dove inizia a scrivere in excel
on error resume next
'Si collega al server e ottiene li dati dei gruppi
'(nome e descrizione)
Set oDomain = GetObject("WinNT://" & DOMAIN_NAME)
oDomain.Filter = Array("group")
For Each oGroup In oDomain
xlWrite oGroup.name, oGroup.Description
Next
set oDomain=nothing
msgbox "Creazione file con elenco gruppi del dominio completata",,"Lista Gruppi"
'EXCEL: scrive sulle colonne i dati passati come parametri
'e poi passa alla riga successiva.
Sub xlWrite(GroupID, Description)
oXL.Cells(nIndex, 1).Value = GroupID
oXL.Cells(nIndex, 2).Value = Description
nIndex = nIndex + 1
End Sub
'*** ListaGruppi.vbs - Fine Programma ***
Giovanni Cenati
|
||
|
© Cenati Giovanni 2004/2010 - http://digilander.libero.it/Cenati - Reventlov at Katamail com
|