Verwijder een lijst met gebruikers uit ad powershell. Hoe u een lijst kunt krijgen met geselecteerde AD-groepen waarvan een grote lijst met gebruikers lid is

Goedemiddag lieve lezers en abonnees blijven we de mogelijkheden van Powershell en Active Directory verkennen. Hoe herinner je je alles van haar? rekeningen gebruikers en computers bevinden zich in de NTDS.dit-database, alles is cool en gecentraliseerd. Wanneer een bedrijf meer dan één systeembeheerder heeft, kan er een situatie ontstaan ​​waarin rommel en onnodige inloggegevens zich ophopen. We zijn allemaal mensen en we kunnen sommige dingen vergeten, en op sommige momenten kunnen we afgeleid zijn, wat ook tot vergeten zal leiden belangrijke informatie. En we komen tot de conclusie dat de Actvie Directory zich niet ophoopt actieve gebruikers(ontslagen of vergeten), hoe dan ook, goed systeembeheerder moeten ze identificeren, uitschakelen en vervolgens desgewenst verwijderen, wat we zullen doen.

Via ADUC-module

De vorige keer gaf ik je al een gebruiksvoorbeeld Actieve snap-in Directory-gebruikers en computers, waarmee we zochten naar ontbrekende computers op het lokale netwerk die al een maand niet waren verschenen. Nu zullen we hetzelfde doen met gebruikersaccounts. Ik heb AD aanstaan Windows-server 2012 R2, open ADUC, druk hiervoor op WIN+R en voer dsa.msc in.

Voer in het geopende aanvraagformulier het volgende in:

  • Naam opvragen > voor mij zijn dit verloren gebruikers
  • Beschrijving indien nodig
  • Root aanvragen > hier kunt u het gehele domein laten staan, of opgeven op de gewenste OU

Klik dan op de aanvraagknop.

Op het tabblad gebruikers zien we het item “Aantal dagen sinds de laatste login”; ik heb dit bijvoorbeeld ingesteld op 60 dagen.

Als gevolg hiervan ontvangt u de lijst die u nodig heeft met inactieve werknemersaccounts.

Via powershell-snap-in

Hetzelfde kan worden gedaan via Powershell. Ik geef je meteen de code waarvan de taak is er wordt gezocht inactieve gebruikers Hiervoor heb ik een periode van 45 dagen gekozen, gebruikersgegevens uitgeschakeld en verplaatst naar een speciaal aangewezen OU.

$date_with_offset= (Get-datum).AddDays(-45)
$users = Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | Sorteer LastLogonDate
foreach ($user in $users) (set-aduser $user -enabled $false; move-adobject -identity $user -targetpath "ou=Fired,ou=Moskou L. gebruikers,ou=Locatie,dc=msk,dc= contoso,dc=com")
Get-ADUser -Eigenschappen LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | Sorteer LastLogonDate | FT-naam, LastLogonDate -AutoSize | Uit-bestand c:\Script\users.txt

  • In de eerste regel declareer je een variabele waarin je de zoekterm instelt
  • Maak een variabele aan en maak een selectie op basis van de laatste inlogtijd
  • Gebruikers verplaatsen

  • Een rapport maken in een bestand

Nog meer nuttige dingen over het werken met de gebruiker. Voordat u onderstaande opdrachten gebruikt, moet u downloaden Actieve module Directory, via opdracht

Get-Help Get-ADUser

Scripts voor het verwijderen van alle gebruikers uit MS Active Directory (ITGC)

Ivan Piskunov

Een van standaardprocedures het uitvoeren van een audit ITGC voor de catalogus Actieve map is om een ​​download van alle domeingebruikers te krijgen. Op basis van de verkregen gegevens worden vervolgens testprocedures gevormd, bijvoorbeeld door de lijst met beheerders te bestuderen of gebruikers te identificeren met een verlopen wachtwoord. De meest effectieve manier om zo’n upload te maken is door gebruik te maken van standaardinterface PowerShell , waarvan we voorbeelden in dit artikel zullen bekijken

1. Express-upload met behulp van een PowerShell-script

Hieronder staat PowerShell-script, als een van de eenvoudigste en snelle manieren krijg een lijst van alle AD-domeingebruikers in CSV-formaat, die zonder problemen in Excel kan worden geopend.

$objSearcher = Nieuw object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = "LDAP://ou=Gebruikers,ou=Departmets,dc=test,dc=ru" $objSearcher.Filter = "(&(objectCategory=person) (!userAccountControl:1.2.840.113556.1.4.803:=2))" $users = $objSearcher.FindAll() # Aantal accounts $users.Count $users | ForEach-Object ( $user = $_.Properties New-Object PsObject -Property @( Positie = $user.description Afdeling = $user.department Login = $user.userprincipalname Telefoon = $user.telephonenumber Kamer = $user.physicaldeliveryofficename Volledig naam = $gebruiker.cn ) ) | Export-Csv -NoClobber -Encoding utf8 -Pad C: lijst_domein_gebruikers.csv

Om het script op uw systeem te laten werken, moet u het enigszins corrigeren, namelijk de noodzakelijke parameters invoeren, d.w.z. zoals in in dit voorbeeld dit zijn de parameters Gebruikers op de afdeling Afdelingen in het domein Test.ru. En geef ook het pad aan waar het bestand is opgeslagen lijst_domein_gebruikers.csv

Na het lossen, als je hem meteen opent lijst_domein_gebruikers.csv , ziet er onleesbaar uit, maar met standaardmiddelen kunnen we het gemakkelijk in het formaat brengen dat we nodig hebben. Openen in Excel lijst_domein_gebruikers.csv , selecteer de eerste kolom, ga vervolgens naar het tabblad "Gegevens" en klik op "Tekst per kolommen". Selecteer "gescheiden" en klik op "Volgende". Klaar!

!Het is noodzakelijk om op te merken, Wat dit script zal niet meer dan 1000 gebruikers weergeven. Voor klein bedrijf Het is redelijk geschikt, maar voor degenen die een groot aantal gebruikers in hun domein hebben, moeten ze hun toevlucht nemen tot de hieronder beschreven methoden.

2. Geavanceerde PowerShell-cmdlet voor het ontvangen van uploads Actieve gebruikers Directory

Met de Active Directory Module voor Windows PowerShell-tool (geïntroduceerd in Windows Server 2008 R2 en hoger) kunt u cmdlets maken die verschillende manipulaties uitvoeren met AD-directoryobjecten. De cmdlet wordt gebruikt om informatie over gebruikers en hun eigenschappen te verkrijgen Get-ADUser.

Om te beginnen start een Powershell-venster met beheerdersrechten en importeer de Active Directory-module voor verdere actie:
Importmodule activedirectory

Naar geef alle domeinaccounts weer Laten we de opdracht uitvoeren:

Get-ADUser-filter *

Naar terugtrekken vol informatie over alle beschikbare attributen gebruiker tuser, voer de opdracht uit

Get-ADUser -identiteit tuuser -eigenschappen *


Wij zijn bijvoorbeeld geïnteresseerd in informatie over datum waarop het wachtwoord is gewijzigd en het tijdstip waarop het verloopt . Het resultaat van de opdracht kan worden geëxporteerd naar een tekstbestand:

Get-ADUser -filter * -eigenschappen WachtwoordExpired, WachtwoordLastSet, WachtwoordNeverExpires | ft Naam, WachtwoordExpired, WachtwoordLastSet, WachtwoordNeverExpires > C:tempusers.txt

Of meteen uploaden naar CSV , wat handig zal zijn om in de toekomst naar Excel te exporteren (daarnaast zullen we met behulp van sort-object de tabel sorteren op de kolom WachtwoordLastSet, en ook toevoegen waar staat– de gebruikersnaam moet de string “Dmitry” bevatten)

Get-ADUser -filter * -eigenschappen WachtwoordExpired, WachtwoordLastSet, WachtwoordNeverExpires | waar ($_.name –zoals “*Dmitry*”) | sorteerobject WachtwoordLastSet | select-object Naam, WachtwoordExpired, WachtwoordLastSet, WachtwoordNeverExpires | Export-csv-pad c:tempuser-wachtwoord-verloopt-2015.csv

In de opmerkingen bij het vorige artikel herinnerden we ons over boekhouding in Excel in plaats van 1C. Laten we eens kijken hoeveel u Excel kent. Vandaag laat ik je zien hoe je gegevens uit Active Directory kunt halen en ermee kunt werken zonder macro's en PowerShell - alleen met standaard Office-mechanismen. U kunt bijvoorbeeld eenvoudig analyses krijgen van het gebruik van het besturingssysteem in uw organisatie als u nog niet over zoiets als Microsoft SCOM beschikt. Nou ja, of gewoon even opwarmen en je gedachten afleiden van de scripts.


Uiteraard kunt u de gegevens zoals in de onderstaande voorbeelden letterlijk met één regel in PowerShell verkrijgen. Maar ten eerste is PowerShell te saai, en ten tweede kan Excel gegevens dynamisch bijwerken - de resulterende documenten kunnen online worden gepubliceerd en vergeten dat ze moeten worden bijgewerkt.

Om met gegevens te werken, zal ik het Power Query-mechanisme gebruiken. Voor Office 2010 en 2013 moet u de plug-in installeren in Microsoft Office 2016 is deze module al ingebouwd. Helaas is de standaardeditie niet genoeg voor ons; we hebben Professional nodig.


Het mechanisme zelf is ontworpen om gegevens uit verschillende bronnen te ontvangen en te verwerken - van de oude ODBC en tekstbestanden, naar Exchange, Oracle en Facebook. Meer details over het mechanisme en de ingebouwde scripttaal “M” zijn al geschreven op Habré, maar ik zal een paar gebruiksvoorbeelden bekijken Power-query om gegevens uit Active Directory op te halen.

Opwarming: laten we eens kijken wanneer onze gebruikers zijn ingelogd

Het verzoek aan de domeindatabase zelf wordt aangemaakt op het tabblad “Data - Nieuw verzoek― Uit andere bronnen ― Uit Active Directory.”



Geef de gegevensbron op.


U moet een domeinnaam selecteren en de benodigde verbindingsgegevens opgeven. Selecteer vervolgens het type objecten, in dit voorbeeld: gebruiker. Rechts in het voorbeeldvenster is de query al actief en wordt een voorbeeld van de gegevens weergegeven.



Wij bereiden een aanvraag voor en bewonderen de preview.


U dient uw verzoek eerst voor te bereiden door op de knop “Bewerken” te klikken en te selecteren vereiste kolommen. In wezen zijn deze kolommen klassen. Elk van hen bevat een reeks specifieke kenmerken van een Active Directory-object, behalve de hoofdkolom weergavenaam, wat zelf een attribuut is. Ik zal me concentreren op de lessen gebruiker, persoon, bovenkant En beveiligingPrincipaal. Nu moet je selecteren vereiste attributen van elke klasse met behulp van de “extensie” - een pictogram met twee pijlen bij de kolomkop:

  • Klas gebruiker uitbreiden door te kiezen lastLogonTijdstempel En userAccountControl;
  • V persoon laten we kiezen Telefoonnummer;
  • V bovenkantwanneeraangemaakt;
  • en binnen beveiligingPrincipaalSamAccountnaam.


Wij breiden het verzoek uit.


Laten we nu het filter instellen: om te voorkomen dat accounts worden geblokkeerd, moet het attribuut userAccountControl de waarde 512 of 66048 hebben. Het filter kan in uw omgeving anders zijn. U kunt meer over het kenmerk lezen in de Microsoft-documentatie.



Een filter toepassen.


Soms detecteert Excel het gegevensformaat onjuist, vooral de waarde van het kenmerk lastLogonTimestamp. Als een dergelijk ongeluk u plotseling overkomt, kunt u het juiste formaat instellen op het tabblad “Converteren”.

Nu moet de userAccountControl-kolom worden verwijderd - deze is helemaal niet nodig in het display. En klik op “Downloaden en sluiten”.


Het resultaat is een bord dat nog een kleine finishing touch nodig heeft. Hernoem de kolommen bijvoorbeeld naar iets leesbaarder. En aanpassen automatische update gegevens.


Automatische updates bij het openen van een tabel of bij time-out worden geconfigureerd op het tabblad “Gegevens” in “Eigenschappen”.



Gegevensupdate instellen.


Nadat het instellen van de update is voltooid, kunt u de tafel veilig aan de personeelsafdeling of de beveiligingsdienst geven - laat hen weten wie zich wanneer op het systeem heeft aangemeld.


De aanvraagcode in de “M”-taal staat onder de spoiler.

let Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Objectcategorieën"], user1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(user1,( "organizationalPerson", "shadowAccount", "posixAccount", "msExchOmaUser", "msExchBaseClass", "msExchIMRecipient", "msExchCertificateInformation", "msExchMultiMediaUser", "msExchMailStorage", "msExchCustomAttributes", "mailRecipient", "distinguishedName")), #"Uitgebreid element securityPrincipal" = Table.ExpandRecordColumn(#"Verwijderde kolommen", "securityPrincipal", ("sAMAccountName"), ("sAMAccountName")), #"Uitgebreid element top" = Table.ExpandRecordColumn(#"Uitgebreid element securityPrincipal ", "top", ("whenCreated"), ("whenCreated")), #"Uitgebreid element person" = Table.ExpandRecordColumn(#"Uitgebreid element top", "person", ("telephoneNumber"), ("telephoneNumber ")), #"Expanded element user" = Table.ExpandRecordColumn(#"Expanded element person", "user", ("lastLogonTimestamp", "userAccountControl"), ("lastLogonTimestamp", "userAccountControl")), #"Rows met filter toegepast" = Table.SelectRows(#"Uitgebreid gebruikerselement", elk ( = 512 of = 66048)), #"Gewijzigd type" = Table.TransformColumnTypes(#"Rijen met filter toegepast",(("lastLogonTimestamp", type datetime))), #"Remoted columns1" = Table.RemoveColumns(#"Changed type",("userAccountControl")) in #"Remoted columns1"

Een adresboek maken, of wat u wanneer moet doen bedrijfsportaal niet bevriend met AD

Een andere optie met behulp van Excel in combinatie met Active Directory - dit is de vorming van een adresboek op basis van AD-gegevens. Dat is duidelijk adresboek Het is alleen relevant als het domein in orde is.


Laten we een aanvraag voor een object maken gebruiker, breid de klas uit gebruiker V mail, en klasse persoon V Telefoonnummer. Laten we alle kolommen verwijderen, behalve onderscheidenNaam– de domeinstructuur herhaalt de structuur van de onderneming, dus de namen Organisatorische eenheden overeenkomen met de namen van de afdelingen. Op dezelfde manier kunnen beveiligingsgroepen worden gebruikt als basis voor afdelingsnamen.


Nu vanaf de lijn CN=Gebruikersnaam, OU=Boekhoudingsafdeling, OU=Divisies, DC=domein, DC=ru u moet de afdelingsnaam rechtstreeks extraheren. De eenvoudigste manier om dit te doen is door de scheidingstekens op het tabblad Transformeren te gebruiken.



Het extraheren van de tekst.


Als scheidingstekens gebruik ik OU= En ,OU=. In principe is een komma voldoende, maar ik speel op safe.



Voer scheidingstekens in.


Nu u het filter gebruikt, kunt u onnodig afsnijden OU, zoals geblokkeerde gebruikers en ingebouwd, configureer het sorteren en laad gegevens in de tabel.



Weergave van de overzichtstabel.

Snel rapporteren over de samenstelling van werkplekken, zonder tussenkomst van middelen of andere voorbereidingen

Laten we nu proberen een bruikbare tabel te maken door gegevens op computers te verkrijgen. Laten we een rapport maken over de besturingssystemen die door het bedrijf worden gebruikt: hiervoor zullen we een verzoek aanmaken, maar deze keer zullen we in de navigator selecteren computer.



Wij doen een aanvraag voor het computerobject.


Laten we de kolomklassen verlaten computer En bovenkant en breid ze uit:

  • Klas computer uitbreiden door te kiezen cn, besturingssysteem, besturingssysteemServicePack En besturingssysteemversie;
  • in de klas bovenkant laten we kiezen wanneeraangemaakt.


Geavanceerd verzoek.


Indien gewenst kunt u alleen een rapport maken over serverbesturingssystemen. Filter bijvoorbeeld op het kenmerk operatingSystem of operatingSystemVersion. Ik zal dit niet doen, maar ik zal de weergave van de aanmaaktijd corrigeren - ik ben alleen geïnteresseerd in het jaartal. Om dit te doen, selecteert u op het tabblad “Conversie” de kolom die we nodig hebben en selecteert u “Jaar” in het menu “Datum”.



We halen het jaar uit het tijdstip waarop de computer het domein binnenkwam.


Nu hoeft u alleen nog maar de kolom weergavenaam als onnodig te verwijderen en het resultaat te laden. De gegevens zijn klaar. Nu kunt u ermee werken zoals met een gewone tafel. Laten we eerst een draaitabel maken op het tabblad "Invoegen" - " Draaitabel" Laten we akkoord gaan met de keuze van de gegevensbron en de velden configureren.



Veldinstellingen voor draaitabel.


Nu hoeft u alleen nog maar het ontwerp naar uw smaak aan te passen en het resultaat te bewonderen:



Overzichtstabel voor computers in AD.


Indien gewenst kunt u toevoegen samenvattend schema, ook op het tabblad Invoegen. Voeg toe in de "Categorie" (of in de "Rijen", naar smaak). besturingssysteem, naar gegevens ― cn. Op het tabblad “Ontwerp” kun je het type diagram kiezen dat je leuk vindt; Ik gaf de voorkeur aan het cirkeldiagram.



Cirkeldiagram.


Nu is duidelijk zichtbaar dat, ondanks de voortdurende update, het totaal aantal werkstations met Windows XP en servers met Windows 2003 behoorlijk groot is. En er is iets om naar te streven.


De aanvraagcode staat onder de spoiler.

let Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Objectcategorieën"], computer1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(computer1,( "user", "organizationalPerson", "person")), #"Andere verwijderde kolommen" = Table.SelectColumns(#"Remoted columns",("displayName", "computer", "top")), #"Item uitvouwen computer" = Table.ExpandRecordColumn(#"Andere externe kolommen", "computer", ("cn", "operatingSystem", "operatingSystemServicePack", "operatingSystemVersion"), ("cn", "operatingSystem", "operatingSystemServicePack", " operatingSystemVersion")), #"Extended top" = Table.ExpandRecordColumn(#"Uitgebreide computer", "top", ("whenCreated"), ("whenCreated")), #"Geëxtraheerd jaar" = Table.TransformColumns( #" Uitgebreid element top",(("whenCreated", Date.Year))), #"Remoted columns1" = Table.RemoveColumns(#"Extracted year",("displayName")) in #"Remoted columns1"

Labels toevoegen Wordt gebruikt om directoryobjecten te maken, bewerken en verwijderen. De gebruiker kan de opdracht ook gebruiken ldifde exporteer om het schema uit te breiden informatie Actief Directory-gebruikers- en groepsinformatie naar andere toepassingen of services, en om de ADAM-service (Active Directory Application Mode) te vullen met gegevens uit andere directoryservices.

Syntaxis

ldifde [-i] [-F bestandsnaam] [-S servernaam] [-C lijn1 lijn2] [-v] [-J pad] [-T poortnummer] [-D DN_basis] [-R filter_LDAP] [-P regio] [-l LDAP_kenmerklijst] [-O LDAP_kenmerklijst] [-G] [-M] [-N] [-k] [-A ] [-B ] [-? ]

Opties

-i Specificeert de importmodus. Als de parameter niet is gedefinieerd, wordt standaard de exportmodus gebruikt. -Fbestandsnaam Specificeert de naam van het import- of exportbestand. -Sservernaam Specificeert de computer waarop de import- of exportbewerking moet worden uitgevoerd. Standaardprogramma ldifde wordt uitgevoerd op de computer waarop ldifde geïnstalleerd. -Clijn1 lijn2 Vervangt alle exemplaren lijnen1 inhoud lijnen2. Meestal gebruikt wanneer u gegevens van het ene domein naar het andere importeert en de DN-naam moet vervangen van het domein dat de export uitvoert ( lijn1), domeinnaam importeren ( lijn2). -v Schakelt de modus in gedetailleerde logboekregistratie. -Jpad Specificeert de locatie van het logbestand. De standaardwaarde is het huidige pad. -Tpoortnummer Specificeert het LDAP-poortnummer (Lightweight Directory Directory Access Protocol). Toegangsprotocol). De standaard LDAP-poort is 389. Poort mondiale catalogus is 3268. -DDN_basis Specificeert de DN-naam van de zoekbasis voor gegevensexport. -RLDAP-filter Creëert een LDAP-zoekfilter voor gegevensexport. Het volgende filter exporteert bijvoorbeeld alle gebruikers met een specifieke middelste naam: csvde -r (en(objectClass=Gebruiker)(sn=Achternaam)) -Pregio Specificeert het zoekgebied. De zoekbereikparameters zijn Baseren, Eén niveau En Subboom. -lLDAP_kenmerklijst Specificeert de lijst met kenmerken die worden geretourneerd in de resultaten van de exportaanvraag. Als deze parameter wordt weggelaten, worden alle attributen geretourneerd. -OLDAP_kenmerklijst Specificeert een lijst met kenmerken die moeten worden weggelaten uit de resultaten van de exportaanvraag. Deze optie wordt doorgaans gebruikt bij het exporteren van objecten uit Active Directory en deze vervolgens importeren in een andere LDAP-compatibele directory. Als er kenmerken zijn die niet door een andere catalogus worden ondersteund, kunnen deze met deze optie worden uitgesloten van de resultatenset. -G Elimineert paginazoekopdrachten. -M Laat attributen weg die niet kunnen worden geschreven, zoals ObjectGUID En objectSID. -N Laat de export van binaire waarden achterwege. -k Negeert fouten tijdens de importbewerking en gaat door met de verwerking. Hieronder staat volledige lijst genegeerde fouten:

  • het object is al lid van de groep;
  • een schending van de objectklasse (wat betekent dat de opgegeven objectklasse niet bestaat) als het geïmporteerde object geen andere attributen heeft;
  • het object bestaat al;
  • overtreding van de beperking;
  • het attribuut of de waarde bestaat al;
  • zo'n object bestaat niet.
-Aonderscheidende_naam_wachtwoord Specificeert de uitvoering van een opdracht met behulp van de opgegeven onderscheidende_naam_gebruikersnaam En wachtwoord -B. -Bgebruikersnaam domeinwachtwoord Specificeert de opdracht die moet worden uitgevoerd met behulp van het opgegeven gebruikersnaam, domein en wachtwoord. Standaard wordt de opdracht uitgevoerd met de inloggegevens van de gebruiker die zich in het systeem bevindt huidige moment geregistreerd op het netwerk. Kan niet worden gebruikt met parameter -A. -? Geeft een menu met opdrachten weer.

Opmerkingen

  • Met parameter -C Je kunt constanten gebruiken #schemaNamingContext En #configurationNamingContext in plaats van de DN-namen van de schemamappartitie en de configuratiemappartitie.
  • Bij het maken van een importbestand voor een opdracht ldifde, gebruik de waarde veranderType om het type wijzigingen in het importbestand te bepalen. Waarden veranderType staan ​​in de onderstaande tabel.

Hieronder ziet u een voorbeeld van een LDAP-importbestand in LDIF-indeling waarin de waarde wordt gebruikt toevoegen:
DN: CN=geselecteerde_gebruiker,DC=domeinnaam
wijzigingstype: toevoegen
CN: geselecteerde_gebruiker
beschrijving:bestandsbeschrijving
objectKlasse: gebruiker
objectKlasse: geselecteerde_gebruiker

Voorbeelden

Om alleen de DN-naam te extraheren, gemeenschappelijke naam, voornaam, achternaam en telefoonnummer van de geretourneerde objecten, voer in:
-l onderscheidende_naam, CN, Naam, S.N. telefoon
Om een ​​Globally Unique Identifier (GUID) voor een object uit te sluiten, voert u het volgende in:
-O wanneer_gemaakt, wanneer_gewijzigd, object_GUID

Vandaag zullen we proberen een lijst met alle gebruikers te uploaden apart bestand uit Active Directory. Onze belangrijkste assistent in deze kwestie zal PowerShell zijn. Het punt is dat Microsoft aanvankelijk een team had gepland PowerShell-console als het belangrijkste hulpmiddel voor serverbeheer Windows-componenten. En vandaag de dag, nu we al versie 2.0 hebben, is dit in grote lijnen zo.

Zelfs in het recente verleden moesten beheerders, om op de een of andere manier met AD te kunnen communiceren, over het hulpprogramma dsquery of verschillende soorten scripts of hulpprogramma's beschikken. Vanaf vandaag Windows-versies Server 2008 R2, we kunnen met AD werken via PowerShell. Met de komst van PowerShell 2.0 wordt er een speciale module gebruikt voor interactie met Active Directory Active Directory-module voor Windows PowerShell , die de benodigde lijst met cmdlets bevat. Voor onze taken zullen we het commando gebruiken Get-ADUser.

Dus afhankelijk van welke onder controle is besturingssysteem we zullen de PowerShell-console lanceren, we zullen “voorbereidende stappen” moeten uitvoeren.

1) Als we onder Windows Server werken tot versie 2012, dan moeten we de opdracht uitvoeren:

  • Importmodule activedirectory – opdracht om een ​​module in AD te importeren

Voor besturingssysteemversies vanaf 2012 en hoger is deze module standaard al ingeschakeld.

2) Als we van onderaf werken cliënt Windows, dan moet het pakket erop worden geïnstalleerd beheer op afstand RSAT, met het Active Directory Module-onderdeel geïnstalleerd voor Windows PowerShell.

Het is vermeldenswaard dat het wordt aanbevolen om de cmdlet Get-ADUser uit te voeren wanneer de hoeveelheid gegevens die wordt geüpload maximaal 1000 gebruikers bedraagt.

AD-gebruikers exporteren met PowerShell naar een afzonderlijk bestand

Laten we eerst de hulp inroepen voor de opdracht Get-ADUser. Als resultaat krijg je alles noodzakelijke commando's voor verdere administratie.

  • help Get-ADUser – commando om hulp te bellen

Om door het raam te komen PowerShell-lijst alle gebruikers met alle eigenschappen, moet u de volgende opdracht uitvoeren:

  • Get-ADUser-filter * – exporteer een lijst met AD-gebruikers

Deze download is niet geheel informatief en past niet alles in het venster. noodzakelijke informatie. Laten we daarom proberen de zoekopdracht te verfijnen en de eigenschappen weer te geven specifieke gebruiker met de naam gebruiker1:

  • Get-ADUser -identiteit gebruiker1 -eigenschappen * – exporteer eigenschappen van een specifieke gebruiker

Laten we nu proberen de lijst met alle gebruikers met hun eigenschappen naar een extern bestand te exporteren txt- of csv-bestand bestand:

  • Get-ADUser -filter * -eigenschappen * | Export-csv -pad c:\users.csv - Unicode coderen – exporteer gebruikers naar een apart bestand

Ik wil speciale aandacht besteden aan de sleutel - Unicode coderen. Het dient ervoor te zorgen dat het Russische Cyrillische alfabet, na export vanuit AD, correct kan worden weergegeven in het geüploade bestand. Via bijvoorbeeld MicrosoftExcel we zullen zien vraagtekens in plaats van Russische letters.

Bij het bekijken van een bestand worden de gegevens op één regel geëxporteerd en zijn dus niet leesbaar. Om dit te veranderen moeten we het volgende doen: