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'

Veniamo, ora, allo sctipt vero e proprio…

[x_code]

<# 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”

[/x_code]

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!

P.S.: Se volete scaricare direttamente lo script, potete prelevarlo direttamente qui sotto (tasto destro + “salva link con nome”)

[x_button shape=”square” size=”regular” float=”none” block=”false” icon_only=”true” href=”http://www.robertobonfa.it/Script/SearchInADGroup.ps1″ title=”Scarica lo script!” target=”blank” info=”popover” info_place=”top” info_trigger=”hover” lightbox_thumb=”http://www.robertobonfa.it/storage/2017/11/powershell-icon-17192.png”]Scarica “SearchInADGroup”[/x_button]