A felhasználók áthelyezése a listáról a kívánt ou-ra

A nap minden kedves ideje.

Elkezdte áthelyezni a felhasználókat a megfelelő OU-ba. Miután a 15. felhasználó rájött, hogy a folyamat hosszú ideig fog húzódni, és még más "sürgős ügyeket" is ásni fog. Úgy döntöttem, hogy automatizálom a munkát a forgatókönyvvel. A forgatókönyv úgy döntött, hogy a PowerShell-re ír. Minden szükséges cmdletet tartalmaz az AD objektumok kezeléséhez. A cmletts tapasztalat állt rendelkezésre, például itt és itt.







Az eredeti adatok Excel-fájl formájában készültek, ahol a személyzet jegyzékét a személyzet részlege biztosította. Az Excel szűrők használatával kiválasztottam az egység alkalmazottait. Ezt a listát egy külön lapra másolták. Megtalálták a neveket tartalmazó oszlopot. Az oszlop neve displayname.

A felhasználók áthelyezése a listáról a kívánt ou-ra

Ezt követően a lap mentésre került, míg a "File Type" mentése "Unicode Text (* .txt)" lett kiválasztva.

Amikor megpróbáltam importálni ezt a fájlt, azt találtam, hogy az orosz karaktereket kérdőjelként importálják a fájlból. Igen, és a konzol az orosz elrendezés fel a kérdések jeleit. A probléma megoldása megtalálható az interneten. Meg kell változtatnod a konzol kódkonstrukcióját a chcp 1251-vel, és változtasd meg a betűtípust a Lucida Console-ra.

A felhasználók áthelyezése a listáról a kívánt ou-ra






Ezek után minden csoda csodálatosan működött.

Tehát a kívánt alosztály nevének listáját a C: \ meghajtó Scripts könyvtárába helyeztük el. Filename usermove.txt

Tehát az alábbiakban maga a szkript:


# Csatlakoztassa a Powershell modult az AD használatához
Import-Module ActiveDirectory -ErrorAction SilentlyContinue

# Módosítsa a kódlapot, változtassa meg 1 alkalommal
chcp 1251

# OU Hol kell átvinni a felhasználókat?
$ targetOU = "OU = 1. alkörzet, OU = Osztály_1, OU = Társaságnév_Users, DC = iroda, DC = helyi"

#OU Hol kapjuk a felhasználókat?
$ sourceOU = "OU = CompanyName_Users, DC = iroda, DC = helyi"

# A fájl elérési útját a megfelelő felhasználók teljes nevével hozzárendeljük
$ impfile = "C: \ Scripts \ usermove.txt"

# Hozzon létre $ felhasználói tömböt és töltsön be rá felhasználókat
$ users = Import-CSV $ impFile

# Futtassa a hurokot és feldolgozza a tömb minden egyes vonalát.
foreach ($ felhasználó $ felhasználóknál)
# $ Dplname hozzárendelése a $ user $ displayname oszlopához tartozó string értékéhez
$ dplname = $ user.displayname

# A $ usermove tömbben megadjuk annak a felhasználónak az attribútumát, amelynek megjelenítési neve (a név attribútuma) most a $ dplname változóban van.
# A keresés az OU-ban történik, amely tartalmazza a $ sourceOU változón megadott nevet. A keresés mélysége (a -SearchScope OneLevel paraméterrel megadva) csak az aktuális OU, az összes downstream OU nem látható.

$ usermove = get-aduser -f -SearchBase $ forrásOU -SearchScope OneLevel

# Nyomtassa ki a változókat az ellenőrzéshez
író-fogadó "User $ dplname"
write-host
írj-fogadó "Átvitel $ usermove.distinguishedname"
write-host

# A felhasználó áthelyezése a kívánt OU-ba
Move-ADObject -Identity $ usermove.distinguishedname -TargetPath $ targetOU
>

# Megjelenítem a képernyőt, hogy ellenőrizzem a felhasználókat.
$ targetOU

Ez minden. Tervezik a felhasználói attribútumok, például:




Kapcsolódó cikkek