Search In AD Group | Script Powershell per la ricerca di un gruppo in AD

Search In AD Group | Script Powershell è uno script powershell che esamina tutta Active Directory alla ricerca di un gruppo o di una parola all’interno di un gruppo.

Search In AD Group è un semplice script che ho avuto necessità di creare per effettuare una ricerca in AD allo scopo di trovare tutti i gruppi (o anche un o solo) che contenessero una determinata parola o anche solo poche lettere.

Quando si è in molti a lavorare su Active Directory e si hanno migliaia di utenze e gruppi con una nomenclatura particolare, potrebbe capitare che si incontrino difficoltà a ricordare il nome di un determinato gruppo, quindi… ecco uno script semplice che cerca in tutta AD e scova i nomi di uno o più gruppi che contengano una determinata stringa di ricerca.

Un solo requisito e una sola personalizzazione.

• Requisito: accesso ad Active Directory
• Personalizzazione: alla riga 22, dovrete inserire i dati del vostro dominio
$domainname = 'dc=vostrodominio,dc=local'

<#
SearchInADGroup
Roberto Bonfa’
Versione : 1.8
Vers. 1.8 – Aggiunta GUI per la stringa di ricerca
Vers. 1.7 – Aggiunta stringa dominio
Vers. 1.6 – Aggiunta apertura file
Vers. 1.5 – Corretto bug di file bianco in output
Vers. 1.4 – Aggiunto footer con nome utente che ha eseguito la ricerca (funziona solo con formattazione html). Rimosso
Vers. 1.3 – Aggiunta creazione cartella SOLO se NON esiste
Vers. 1.2 – Aggiunto salvataggio nella folder “stringa ricerca”. Come nome file inserita data completa della ricerca
Vers. 1.1 – Impostate variabili per salvataggio
Vers. 1.0 – Creazione script Effettua una ricerca all’interno di AD e verifica l’esistenza di un gruppo contenente la stringa specificata Restituisce tutti i dati in cui compare la stringa ricerca.
#>

<# Importo modulo di AD #>
Import-Module ActiveDirectory

<# Imposto dominio di ricerca #>
$domainname = ‘dc=vostrodominio,dc=local’

<# Imposto variabile today con data estesa e ora, comprensiva di minuti #>
$today = Get-Date -f dd.MM.yyyy_ore_HH.mm

<# Imposto variabile richiesta stringa di ricerca via GUI #>

[void][System.Reflection.Assembly]::LoadWithPartialName(‘Microsoft.VisualBasic’)
$srvname = [Microsoft.VisualBasic.Interaction]::InputBox(‘Inserisci la stringa da ricercare’, ‘Stringa di ricerca’)

$srvname

<# Creo cartella con nome server, SE NON esiste #>
$path = “.\log\$srvname\”
if(!(Test-Path -Path $path )){
New-Item -ItemType directory -Path $path
}

<# Filtro i gruppi AD con la ricerca della stringa specificata e restituisce il/i nome/i del/i gruppo/i. Salva la ricerca nella cartella dove è presente lo script, con data, ora e minuto di ricerca #>
$group = Get-ADGroup -SearchBase $domainname -Filter “name -like ‘*$srvname*’” | select SamAccountName | Out-File “$Path\$Today.txt” -append

<# Apro il file con i risultati #>
Invoke-Item “$Path\$Today.txt”

Abbiamo terminato con lo script… Ora dovete solo metterlo su un server o un PC che abbia accesso al dominio e utilizzare un’utenza come Domain Admins. Buon test!

Lascia un commento

Sapevi che su robertobonfa.it non c’è alcuna tipologia di pubblicità?

Roberto Bonfà
robertobonfa.it ha appena eseguito queries sul DB in secondi.

Ti rubo solo 10 secondi, per me stesso...