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
|