Oggi proveremo a caricare un elenco di tutti gli utenti in un file separato da Active Directory. PowerShell sarà il nostro assistente principale in questa materia. Il fatto è che Microsoft originariamente aveva pianificato la console di comando di PowerShell come strumento principale per la gestione dei componenti del server Windows. E oggi, quando abbiamo già la versione 2.0, in generale, questo è vero.
Anche nel recente passato, per interagire in qualche modo con AD, gli amministratori avevano bisogno di avere a loro disposizione l'utilità dsquery o vari script o utilità. Oggi, a partire da Windows Server 2008 R2, possiamo lavorare con AD tramite PowerShell. Con l'avvento di PowerShell 2.0, viene utilizzato un modulo speciale per interagire con Active Directory Modulo Active Directory per Windows PowerShell, che contiene l'elenco richiesto di cmdlet. Per i nostri compiti, useremo il comando Get-ADUser.
Quindi, a seconda del sistema operativo su cui eseguiremo la console di PowerShell, dovremo eseguire "passaggi preparatori".
1) Se stiamo lavorando da Windows Server fino alla versione 2012, quindi dobbiamo eseguire il comando:
- Directory attiva del modulo di importazione – comando per importare il modulo in AD
Per le versioni del sistema operativo dal 2012 in poi, questo modulo è già abilitato per impostazione predefinita.
2) Se lavoriamo da qualsiasi client Windows, è necessario installare il pacchetto di amministrazione remota RSAT su di esso, con il componente Active Directory Module per Windows PowerShell installato.
Vale la pena notare che si consiglia di eseguire il cmdlet Get-ADUser quando la quantità di dati caricati è fino a 1000 utenti.
Esportazione di utenti AD utilizzando PowerShell in un file separato
Innanzitutto, chiamiamo la guida per il comando Get-ADUser. Di conseguenza, riceverai tutti i comandi necessari per un'ulteriore amministrazione.
- aiuta Get-ADUser - comando per chiamare aiuto
Per ottenere un elenco di tutti gli utenti con tutte le proprietà in una finestra di PowerShell, è necessario eseguire il comando seguente:
- Get-ADUser-filtro * – esportazione elenco utenti AD
Questo download non è del tutto informativo e non contiene tutte le informazioni necessarie nella finestra. Pertanto, proviamo a restringere la ricerca e visualizzare le proprietà di un utente specifico denominato utente1:
- Get-ADUser -identità utente1 -proprietà * – esportare le proprietà di un utente specifico
E ora proviamo ad esportare un elenco di tutti gli utenti con le loro proprietà su un esterno txt o csv file:
- Get-ADUser -filtro * -proprietà * | Export-csv -percorso c:\users.csv -codifica Unicode – esportare gli utenti in un file separato
Vorrei prestare particolare attenzione alla chiave -codifica Unicode. Serve a garantire che l'alfabeto cirillico russo, dopo l'esportazione da AD, possa essere visualizzato correttamente nel file caricato. Ad esempio, tramite Microsoft Excel vedremo punti interrogativi anziché lettere russe.
Durante la visualizzazione di un file, i dati vengono esportati su un'unica riga e sono quindi illeggibili. Per cambiare questo, dobbiamo fare quanto segue:
Script per scaricare tutti gli utenti da MS Active Directory (ITGC)
Ivan PiskunovUna delle procedure di audit standard ITGC per catalogo Directory attiva è ottenere un download di tutti gli utenti del dominio. Sulla base dei dati ottenuti, si formano ulteriormente le procedure di test, ad esempio studiando l'elenco degli amministratori o identificando gli utenti con una password scaduta. Il modo più efficiente per generare tale scaricamento è utilizzare l'interfaccia standard PowerShell , esempi di cui prenderemo in considerazione in questo articolo.
1. Caricamento rapido tramite script PowerShellDi seguito è riportato uno script di PowerShell, come uno dei modi più semplici e veloci per ottenere un elenco di tutti gli utenti di un dominio AD in formato CSV, che può essere aperto senza problemi dallo stesso Excel.
$objSearcher = Nuovo oggetto System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = "LDAP://ou=Utenti,ou=Departmets,dc=test,dc=en" $objSearcher.Filter = "(&(objectCategory=person) (!userAccountControl:1.2.840.113556.1.4.803:=2))" $users = $objSearcher.FindAll() # Numero di account $users.Count $users | ForEach-Object ( $utente = $_.Proprietà Nuovo oggetto PsObject -Proprietà @( Titolo = $user.description Reparto = $user.reparto Login = $user.userprincipalname Telefono = $user.telephonenumber Room = $user.physicaldeliveryofficename Nome = $utente.cn ) ) | Export-Csv -NoClobber -Codifica utf8 -Percorso C: list_domain_users.csv
Affinché lo script funzioni sul tuo sistema, devi correggerlo leggermente, ovvero inserire i parametri necessari, ad es. come in questo esempio questi sono i parametri Utenti nella divisione Dipartimenti nel dominio Test.ru. E specificare anche il percorso della posizione in cui è stato salvato il file. list_domain_users.csv
Dopo lo scarico, se immediatamente aperto list_domain_users.csv , apparirà in una forma illeggibile, tuttavia, utilizzando strumenti standard, possiamo facilmente portarlo nel formato di cui abbiamo bisogno. Apertura in Excel list_domain_users.csv , seleziona la prima colonna, quindi vai alla scheda "Dati" e fai clic su "Testo per colonne". Selezionare Delimitato e fare clic su Avanti. Pronto!
!Nota che questo script non visualizzerà più di 1000 utenti. È abbastanza adatto per una piccola azienda, ma coloro che hanno un numero enorme di utenti nel dominio dovrebbero ricorrere ai metodi descritti di seguito.
2. Cmdlet avanzato di PowerShell per ottenere i download degli utenti di Active Directory
Lo strumento Modulo Active Directory per Windows PowerShell (introdotto in Windows Server 2008 R2 e versioni successive) consente di creare cmdlet che eseguono varie manipolazioni con oggetti directory di Active Directory. Per ottenere informazioni sugli utenti e sulle loro proprietà, utilizzare il cmdlet Get-ADUser.
Iniziare avviare una finestra di Powershell
con diritti di amministratore e importare il modulo Active Directory per ulteriori azioni:
Directory attiva del modulo di importazione
Per elenca tutti gli account di dominio ed esegui il comando:
Get-ADUser-filtro *
Per visualizzare tutte le informazioni su tutti gli attributi disponibili utente utente, eseguire il comando
Get-ADUser -identity tuser -proprietà *
Ad esempio, siamo interessati a informazioni su data e ora di cambio password alla scadenza . Il risultato dell'esecuzione del comando può essere esportato in un file di testo:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Nome, Passwordscaduta, PasswordLastSet, PasswordNeverExpires > C:tempusers.txt
O subito carica su CSV , che verrà successivamente esportato convenientemente in Excel (inoltre, utilizzando sort-object, ordineremo la tabella in base alla colonna PasswordLastSet e aggiungeremo anche una condizione where: il nome utente deve contenere la stringa "Dmitry")
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | dove ($_.nome –come “*Dmitry*”) | sort-oggetto PasswordLastSet | seleziona-oggetto Nome, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Esporta-csv -percorso c:tempuser-password-expires-2015.csv
In questo articolo, daremo un'occhiata alla capacità di PowerShell di gestire i gruppi di domini di Active Directory. Vedremo come creare un nuovo gruppo in AD, aggiungere (o rimuovere) utenti ad esso, elencare gli utenti del gruppo e alcune altre utili azioni del gruppo di domini estremamente utili nell'amministrazione quotidiana. I seguenti cmdlet principali sono disponibili per la gestione dei gruppi di Active Directory nel modulo PowerShell di Active Directory:
Per utilizzare questi cmdlet nella sessione di PowerShell, è necessario caricare un modulo speciale per l'interazione con AD - Modulo Active Directory per Windows PowerShell. Questo modulo è stato introdotto per la prima volta in Windows Server 208 R2. In Windows Server 2012 e versioni successive, questo modulo è abilitato per impostazione predefinita. Sui computer client, può essere installato e abilitato come uno dei componenti RSAT. Puoi controllare se il modulo è caricato in questo modo:
Get-Module -Elenco disponibile
Come puoi vedere, il modulo ActiveDirectory è caricato. In caso contrario, importalo con il comando:
Directory attiva del modulo di importazione
Un elenco completo dei comandi del modulo può essere ottenuto come segue:
Get-Command -Module ActiveDirectory
Nel modulo sono disponibili un totale di 147 cmdlet, di cui 11 possono funzionare con i gruppi.
Get-Command -Module ActiveDirectory -Nome "*Gruppo*"
Ecco la loro lista:
- Aggiungi-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- Nuovo-ADGroup
- Rimuovi-ADGroup
- Rimuovi-ADPrincipalGroupMembership
- Set-ADGroup
Creiamo un nuovo gruppo nel contenitore di Active Directory (OU) specificato utilizzando il comando Nuovo-ADGroup:
Nuovo-ADGroup "TestADGroup" -percorso "OU=Groups,OU=Mosca,DC=corp,dc=winitpro,DC=ru" -GroupScope Global -PassThru –Verbose
Con un attributo Descrizione puoi impostare una descrizione per il gruppo e con nome da visualizzare cambiare il nome visualizzato.
Parametro GroupScopeÈ possibile specificare uno dei seguenti tipi di gruppi:
- 0 = DomainLocal
- 1=Globale
- 2=Universale
Puoi creare un gruppo di distribuzione come questo:
Nuovo-ADGroup "TestADGroup-Distr" -percorso "OU=Groups,OU=Mosca,DC=corp,dc=winitpro,DC=ru" -GroupCategory Distribution -GroupScope Global -PassThru –Verbose
Add-AdGroupMember: aggiungi utenti a un gruppo AD
È possibile aggiungere utenti a un gruppo di Active Directory utilizzando Add- Membro del gruppo di annunci. Aggiungiamo due utenti al nuovo gruppo:
Add-AdGroupMember -Identity TestADGroup -Membri utente1, utente2
Se l'elenco degli utenti da aggiungere al gruppo è piuttosto grande, puoi salvare l'elenco degli account in un file CSV, quindi importare il file e aggiungere ogni utente al gruppo.
Il formato del file CSV è il seguente (elenco di utenti, uno per riga, il nome della colonna è utenti)
Import-CSV .\users.csv -Header utenti | ForEach-Object (Add-AdGroupMember -Identity 'TestADGroup' -members $_.users)
Per ottenere tutti i membri di un gruppo (gruppoA) e aggiungerli a un altro gruppo (gruppoB), utilizzare il comando seguente:
Get-ADGroupMember "GruppoA" | Get-ADUser | ForEach-Object (Add-ADGroupMember -Identity "Group-B" -Members $_)
Nel caso in cui sia necessario copiare i membri di tutti i gruppi nidificati in un nuovo gruppo (ricorsivamente), è necessario utilizzare il comando seguente:
Get-ADGroupMember -Identity "GroupA" -Recursive | Get-ADUser | ForEach-Object (Aggiungi-ADGroupMember -Identity "GroupB" -Members $_)
Remove-ADGroupMember: rimuove gli utenti da un gruppo
Per rimuovere utenti da un gruppo AD, utilizzare il comando Remove-ADGroupMember. Rimuoviamo due utenti dal gruppo:
Remove-ADGroupMember -Identity TestADGroup -Membri utente1, utente2
Conferma la rimozione degli utenti dal gruppo:
Se è necessario rimuovere utenti da un gruppo per elenco da un file CSV, utilizzare il comando seguente:
Import-CSV .\users.csv -Header utenti | ForEach-Object(Remove-ADGroupMember -Identity 'TestADGroup' -members $_.users)
Get-ADGroup: ottieni informazioni su un gruppo AD
Il cmdlet ti aiuterà a ottenere informazioni su un gruppo. Get-ADGroup:
Get-ADGroup "TestADGroup"
Questo comando visualizza le informazioni sugli attributi del gruppo principale (DN, tipo di gruppo, nome, SID). Per visualizzare il valore di tutti gli attributi di un gruppo di dominio AD, eseguire il comando seguente:
Get-ADGroup "TestADGroup" -proprietà *
Come puoi vedere, ora vengono visualizzati attributi come l'ora di creazione e modifica del gruppo, la descrizione, ecc.
È possibile utilizzare il cmdlet Get-ADGroup per trovare tutti i gruppi di interesse in base a un modello specifico. Ad esempio, vuoi trovare tutti i gruppi di annunci che contengono la frase amministratori :
Get-ADGroup -LDAPFilter “(name=*admins*)” | Formato tabella
Get-ADGroupMember - elenca i membri del gruppo AD
Visualizza un elenco di utenti del gruppo:
Get-ADGroupMember "TestADGroup"
Per lasciare solo nomi utente nei risultati, eseguire:
Get-ADGroupMember "TestADGroup"| ft nome
Se questo gruppo include altri gruppi di dominio, per visualizzare l'elenco completo dei membri, inclusi tutti i gruppi nidificati, utilizzare l'opzione Ricorsivo.
Get-ADGroupMember 'server-admins" -recursive| ft name
Per esportare un elenco di account che appartengono a un gruppo specifico in un file CSV (per un ulteriore utilizzo in Excel), eseguire il comando seguente:
Get-ADGroupMember 'server-admins" -recursive| ft samaccountname| Out-File c:\ps\admins.csv
Per aggiungere i dati dell'account utente in AD a un file di testo, utilizzeremo il cmdlet. Ad esempio, oltre all'account, è necessario visualizzare la posizione e il numero di telefono dell'utente del gruppo:
Get-ADGroupMember -Identity 'server-admins' -recursive| foreach ( Get-ADUser $_ -titolo proprietà, OfficePhone|Titolo Select-Object, OfficePhone )
(Get-ADGroupMember-Identity "domain admins"). Conte
Si è scoperto che nel gruppo "amministratori di dominio" abbiamo 7 account amministratore.
Per trovare un elenco di gruppi vuoti in un'unità organizzativa specifica, utilizzare il comando seguente:
Get-ADGroup -Filtro * -Proprietà Membri -searchbase “OU=Mosca,DC=corp,dc=winitpro,DC=ru” | dove (-non $_.membri) | seleziona Nome
0
Ho il seguente script di lavoro che controlla se un ampio elenco di utenti in un file CSV è un membro di un gruppo AD e scrive i risultati in results.csv.
Non sono sicuro di come convertire lo script in modo da poter cambiare $group = "InfraLite" in $group = DC .\List_Of_AD_Groups.CSV .
Quindi lo script non restituisce solo corrispondenze per un gruppo AD, ma restituisce corrispondenze per gli 80 gruppi AD contenuti in List_of_AD_groups.csv. Scrivere SÌ/NO per ogni gruppo di annunci in una nuova colonna CSV (o se ciò non è possibile, la creazione di un file CSV separato per ogni gruppo con i risultati farà lo stesso.
Potrei farlo manualmente modificando il valore da $group e il nome del file di esportazione ed eseguendo nuovamente lo script 80 volte, ma dovrei essere veloce con PS per farlo
ad esempio results.csv ?:
NOME AD_GROUP1 AD_GROUP2 AD_GROUP80 ecc ecc. user1 si no si user2 no no si user3 no si no echo "UserName`InfraLite" >> results.csv $users = GC .\user_list.csv $group = "InfraLite" $members = Get-ADGroupMember -Identity $group -Recursive | Seleziona -ExpandProperty SAMAccountName foreach ($utente in $utenti) ( se ($membri -contiene $utente) ( echo "$utente $gruppo`tSì" >> results.csv ) else ( echo "$utente`tNo" >> risultati .csv ) )
2 risposte
Ordinamento:
Attività
0
una soluzione banale al tuo problema sarebbe avvolgere il tuo codice esistente in un altro ciclo e creare un file di output per ogni gruppo:
$groups = Get-Content "C:\groups.txt" foreach ($group in $groups) ( $members = Get-ADGroupMember ... ... )
Un approccio più elegante sarebbe creare un modello di mappatura di gruppo, clonarlo per ogni utente e popolare la copia con l'appartenenza al gruppo dell'utente. Qualcosa del genere dovrebbe funzionare:
$modello = @() Ottieni contenuto "C:\groups.txt" | ForEach-Object ( $template[$_] = $false ) $gruppi = @() Get-ADGroup -Filtro * | ForEach-Object ( $groups[$_.DistinguishedName] = $_.Name ) Get-ADUser -Filter * -Properties MemberOf | ForEach-Object ( $groupmap = $template.Clone() $_.MemberOf | ForEach-Object ( $groups[$_] ) | Where-Object ( $groupmap.ContainsKey($_) ) | ForEach-Object ( $groupmap [$_] = $true ) Nuovo oggetto -Tipo PSObject -Proprietà $groupmap ) | Esporta-Csv "C:\user_group_mapping.csv" -NoType
0
Ci gioco da un po' e penso di aver trovato un modo per darti esattamente quello che stavi cercando.
Penso che Ansgar fosse sulla strada giusta, ma non sono riuscito a convincerlo a fare quello che è successo dopo. Ha menzionato che al momento in cui scrivo non aveva accesso all'ambiente AD.
Ecco cosa mi è venuto in mente:
$UserArray = Get-Content "C:\Temp\Users.txt" $GroupArray = Get-Content "C:\Temp\Groups.txt" $OutputFile = "C:\Temp\Something.csv" # Configurazione di una tabella hash per uso successivo $UserHash = New-Object -TypeName System.Collections.Hashtable # Ciclo esterno per aggiungere utenti e appartenenza a UserHash $UserArray | ForEach-Object( $UserInfo = Get-ADUser $_ -Properties MemberOf # Rimuove la sintassi LPAP solo in SAMAccountName del gruppo $Memberships = $UserInfo.MemberOf | ForEach-Object( ($_.Split(",")) .replace("CN=","") ) #Aggiunta della coppia User=Membership all'hash $UserHash.Add($_,$Memberships) ) # Outer loop per creare un oggetto per utente $Results = $UserArray | ForEach-Object( # Crea prima un oggetto semplice $User = New-Object -TypeName PSCustomObject -Property @( Name = $_ ) # Aggiungi dinamicamente membri all'oggetto, in base a $GroupArray $GroupArray | ForEach-Object ( #Checking $UserHash per vedere se il gruppo compare nell'elenco dei membri dell'utente $UserIsMember = $UserHash.($User.Name) -contiene $_ #Aggiunta di proprietà all'oggetto e valore $User | Add-Member -MemberType NoteProperty -Name $ _ -Value $UserIsMember ) #Restituire l'oggetto alla variabile Return $User ) #Converti gli oggetti in un CSV, quindi emettili $Results | ConvertTo-CSV -NoTypeInformation | Out-File $OutputFile
Speriamo che tutto abbia un senso. Ho commentato più che potevo. Sarebbe molto facile convertire in ADSI se non avessi installato RSAT su qualsiasi macchina su cui lo esegui. Se ti serve fammi sapere e farò delle modifiche veloci.
Non è un segreto che dalla prima versione di PowerShell, Microsoft ha cercato di renderlo il principale strumento di amministrazione di Windows. E in molti modi funziona! Oggi, con semplici esempi, mostreremo le funzionalità di PowerShell che possono essere utilizzate per ottenere varie informazioni sugli utenti di Active Directory e sui loro attributi.
Nota. In precedenza, per ottenere informazioni sugli attributi degli account utente di AD, dovevi utilizzare vari strumenti: la console ADUC (inclusa), un'utilità, ecc. La scelta dello strumento era solitamente basata sull'attività da svolgere e sulla capacità di programmazione dell'amministratore.
PowerShell 2.0 ha introdotto un modulo speciale per lavorare con Active Directory - (introdotto in Windows Server 2008 R2), i cui cmdlet consentono di eseguire varie manipolazioni con oggetti nella directory AD. Per ottenere informazioni sugli utenti del dominio Active Directory e sulle relative proprietà, utilizzare il cmdlet Get-ADUser. È possibile utilizzare il cmdlet Get-ADUser per ottenere il valore di qualsiasi attributo di un account utente esistente in AD. Inoltre, puoi specificare vari criteri di selezione e generare elenchi di utenti di dominio e relativi attributi.
In questo esempio verrà illustrato come usare il cmdlet Get-ADUser di PowerShell per ottenere informazioni sull'ultima modifica della password di un utente e sulla scadenza.
Lanciamo la finestra di Powershll con diritti di amministratore e importiamo il modulo Active Directory con il comando:
Directory attiva del modulo di importazione
Consiglio. In Windows Server 2012 e versioni successive, questo passaggio può essere ignorato, poiché il modulo PowerShell di Active Directory è abilitato per impostazione predefinita.
Nel sistema operativo client (nello stesso Windows 10), affinché il comando Get-AdUser funzioni, è necessario installare la versione appropriata di RSAT e abilitare il componente nel pannello di controllo Modulo Active Directory per Windows PowerShell(Strumenti di amministrazione del server remoto -> Strumenti di amministrazione dei ruoli -> Strumenti di Servizi di dominio Active Directory e Strumenti di AD LDS -> Strumenti di Servizi di dominio Active Directory).
È possibile ottenere un elenco completo di tutti gli argomenti del cmdlet Get-ADUser in questo modo:
Aiuta Get-ADUser
Per visualizzare un elenco di tutti gli account di dominio, eseguire il comando:
Get-ADUser-filtro *
Il formato dell'elenco restituito non è molto intuitivo, vengono visualizzati solo alcuni 10 di base su oltre 120 attributi e proprietà degli account utente (DN, SamAccountName, Name, UPN, ecc.), inoltre, vediamo che c'è nessuna informazione sull'ora dell'ultima modifica della password.
Per visualizzare informazioni complete su tutti gli attributi disponibili dell'utente tuser, eseguire il comando:
Get-ADUser -identity tuser -proprietà *
Quindi, vediamo un elenco completo degli attributi utente di AD e dei loro valori associati all'account utente. Successivamente, passeremo alla formattazione dell'output del cmdlet Get-ADUser in modo che i campi necessari vengano visualizzati. Ci interessano gli attributi:
- Password scaduta
- PasswordUltimoSet
- La password non ha scadenza
Eseguiamo il comando:
Get-ADUser tuser -proprietà PasswordExpired, PasswordLastSet, PasswordNeverExpires
Ora i dati utente contengono informazioni sulla data di modifica della password e l'ora in cui scade. Presentiamo le informazioni in una forma tabellare più conveniente:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Nome, Password scaduta, Password LastSet, Password NeverExpires
Per visualizzare i dati utente da un'unità organizzativa specifica, utilizzare il parametro base di ricerca:
Get-ADUser -SearchBase 'OU=Mosca,DC=winitpro,DC=loc' -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Nome, Password scaduta, Password LastSet, Password NeverExpires
Il risultato dell'esecuzione del comando può essere esportato in un file di testo:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Nome, Passwordscaduta, PasswordLastSet, PasswordNeverExpires > C:\temp\users.txt
Oppure in CSV, che verrà poi convenientemente esportato in Excel (facoltativamente utilizzando sort-oggetto ordina la tabella per colonna PasswordLastSet e aggiungi anche una condizione dove– il nome utente deve contenere la stringa “Dmitry”):
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | dove ($_.nome –come “*Dmitry*”) | sort-oggetto PasswordLastSet | seleziona-oggetto Nome, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -percorso c:\temp\user-password-expires-2015.csv
Pertanto, puoi creare una tabella con tutti gli attributi utente di Active Directory necessari.
Per ottenere un elenco di account utente AD in base a un attributo specifico, utilizzare il parametro –Filter. Come argomenti per questo parametro, puoi specificare il valore di determinati attributi degli utenti di Active Directory, di conseguenza, il cmdlet Get-ADUser verrà applicato agli utenti che soddisfano i criteri di filtro.
Elenco degli utenti AD il cui nome inizia con Roman:
Get-ADUser -filter (nome -come "Roman*")
Get-ADUser -Filter (SamAccountName -come "*") | Misura-Oggetto
Elenco di tutti gli account attivi (non bloccati) in AD:
Get-ADUser -Filter (abilitato -eq "True") | Seleziona-Oggetto SamAccountNome,Nome,Cognome,GivenName | Formato tabella
Elenco degli account con password scaduta:
Get-ADUser -filter (Enabled -eq $True) -properties passwordExpired | dove($_.Passwordscaduta)
Elenco degli account attivi con indirizzi email:
Get-ADUser -Filter ((mail -ne "null") -and (Enabled -eq "true")) -Proprietà Cognome,GivenName,mail | Seleziona-Oggetto Nome,Cognome,Nome,mail | Formato tabella
Compito: per un elenco di account archiviati in un file di testo (un account per riga), è necessario ottenere il numero di telefono dell'utente in AD e caricare le informazioni in un file CSV di testo (può essere facilmente importato in Esxel).
Import-Csv c:\ps\usernsme_list.csv | ForEach ( Get-ADUser -identity $_.user -Properties Name, telephoneNumber | Seleziona nome, telephoneNumber | Export-CSV c:\ps\export_ad_list.csv -Append -Encoding UTF8 )
L'esempio seguente consente di scaricare la rubrica dell'azienda come file CSV, che può essere successivamente importato in Outlook o Mozilla Thunderbird:
Get-ADUser -Filter ((mail -ne "null") -and (Enabled -eq "true")) -Proprietà Cognome,GivenName,mail | Seleziona-Oggetto Nome,Cognome,Nome,mail | Export-Csv -NoTypeInformation -Codifica utf8 -delimiter "," $env:temp\mail_list.csv
Utenti che non hanno cambiato la password negli ultimi 90 giorni:
$90_Days = (Get-Date).adddays(-90) Get-ADUser -filtro ((passwordlastset -le $90_days))
$utente = Get-ADUser winadmin -Proprietà thumbnailPhoto $user.thumbnailPhoto | Set-Contenuto winadmin.jpg -Byte di codifica
Elenco di gruppi di cui è membro l'account utente
Get-AdUser winadmin -Proprietà membro di | Seleziona membro di -expandproperty membro di