Kuunda akaunti otomatiki kwa kutumia PowerShell. Unahitaji nini ili kuanza?

Julai 2, 2012 saa 11:09 jioni

Jinsi ya "kutupa" watumiaji wapya 100,500 haraka Saraka Inayotumika(iliyoinuliwa kwenye MS Seva ya Windows 2003) au Hati ya kuongeza akaunti za watumiaji kwenye Saraka Inayotumika

  • Upangaji wa Mfumo

Ilifanyika tu kwamba nilichagua taaluma msimamizi wa mfumo. Na nimekuwa nikifanya kazi hii wakati mwingine bila shukrani kwa karibu miaka 6 sasa.
Wakati mmoja, miaka michache iliyopita, nilikabiliwa na swali, ambalo baadaye lilikua kazi, ambayo ilikuwa jinsi ya kuunda haraka akaunti mpya za watumiaji katika AD chini ya MS Windows Server 2003?

Nadhani kila mtu anajua njia ya kuongeza mtumiaji kwenye kikoa, kwa kusema, "kwa mkono." Hiyo ni, ili kuongeza akaunti mpya za watumiaji wa AD inabidi ufanye takriban mambo yafuatayo: fungua muhtasari wa "Watumiaji na Kompyuta" wa OS iliyotajwa hapo juu, fungua OU inayolingana (Organization Unite), anzisha yoyote ya mbinu zinazojulikana kuunda mtumiaji, na kisha kwenye dirisha linalofungua, unda watumiaji moja kwa moja. Kukubaliana, hii ni ndefu na ya kuchosha, haswa ikiwa akaunti za watumiaji zinazohitajika sio 10, lakini, sema, 300, 500 au zaidi. Hii itakuwa kazi ya kawaida wakati unahitaji kujaza sio tu sehemu za "kuingia" na "nenosiri", lakini pia sehemu "Jina la Mwisho", "Jina la Kwanza Patronymic", "Nafasi", "Idara", "Shirika". ” iko katika vichupo mbalimbali " nk. Kwa kweli, utasema kuwa hakuna mtu bado ameghairi njia za "nakala-kubandika" na "kuandika kipofu", lakini jaribu, na uhisi idadi ya watumiaji unaochoka, na ikiwa hautachoka, basi. kuhesabu idadi ya makosa yaliyofanywa wakati wa kuingiza data.
Kwa ujumla, nikigundua kuwa nilihitaji kufanya kitu kuhusu hili na kwa kuwa nilikuwa na wakati mdogo, niligeukia rasilimali za mtandao ili kutafuta hati ambayo inapaswa kuwepo na kutatua tatizo hili, kama silika yangu iliniambia. Ole, nilikuwa karibu kukata tamaa kwa kile nilichokiona. Mtandao ulikuwa umejaa kila aina ya maandishi ya kiotomatiki kazi mbalimbali katika mazingira ya AD, lakini nilichohitaji kilikosekana kabisa. Ilinibidi kugeukia rasilimali za lugha ya Kiingereza, moja ambayo (ole, nilikuwa tayari nimepoteza kiungo cha tovuti wakati wa kuandika makala hii, nina mawazo wapi kuangalia, na ikiwa nitaipata, nitaichapisha) kulikuwa na maandishi fulani ya “samaki” kwenye VBS katika umbo “mbichi” sana. kama ilivyokuwa wakati wa kujaribu kuitumia mfumo wa mtihani ambayo haikuongoza kwa chochote - kwa urahisi, priori, haikufanya kazi, kwa sababu ya uwepo wa mapungufu mengi na makosa ya banal ndani yake, kama nilivyogundua baadaye. Ilinibidi kusahihisha, kuongeza nambari na, juu ya hayo, kuwa programu ya VBS :)
Kwa hili, wacha niwasilishe kwa umma unaoheshimiwa hati ya kuongeza akaunti za watumiaji katika AD kwa OUs zilizoundwa mapema (kiwango cha 1). Ikiwa swali linatokea kwa nini OUs hazijaundwa moja kwa moja, basi nitajibu mapema kwamba sijapata jinsi ya kufanya hivyo, na udhibiti wa mabadiliko yaliyofanywa katika AD ni kali sana - bado unapaswa kucheza kwenye sanduku la mchanga. lakini fanya mabadiliko yanayoonekana kwenye mfumo wenye nguvu na unaofanya kazi katika muda halisi, unaoitwa "Active Directory".

Kumbuka muhimu!
Unahitaji kuunda faili mapema iliyo na, ikitenganishwa na ";" vigezo vinavyohitajika:
Ingia; Nenosiri; Jina la jina la patronymic; Jina la ukoo; Jina la kazi; Idara; Shirika;
Mgawanyiko unaofuata ";" unahitajika. kwa kila mstari, kwa mfano:
sirin-ndege1; nenosiri 1; Jina la kwanza Patronymic1; Jina la Mwisho1; Nafasi1; Idara1; Shirika1;
sirin-ndege2; nenosiri2; Jina la kwanza Patronimic2; Jina la Mwisho2; Nafasi2; Idara2; Shirika2;
sirin-ndege4; nenosiri3; Jina la kwanza2 Jina la kati3; Jina la mwisho3; Nafasi3; Idara3; Shirika3;
sirin-ndege3; nenosiri4; Jina la kwanza Patronymic4; Jina la mwisho4; Nafasi4; Idara4; Shirika4;
sirin-ndege5; nenosiri5; Jina la kwanza2 Jina la kati5; Jina la mwisho5; Nafasi5; Idara5; Shirika5;
… … … … … … …
Uundaji wa faili kama hiyo pia inaweza kukabidhiwa kwa wafanyikazi wasio na sifa ambao wanajua jinsi ya kutumia mhariri wa maandishi ya msingi. Na kisha angalia tu usahihi wa uchapaji na uwekaji wa vitenganishi, kama mtumishi wako mnyenyekevu alivyofanya.

Mwingine kumbuka muhimu!
Kigezo cha "Shirika" ni OU kwa mtumiaji anayelingana na haijaundwa na hati hii, kwa hivyo ili kila kitu kifanye kazi, kwanza unda OU inayofaa kwenye mzizi wa kikoa (karibu na folda ya "Watumiaji" OU). Hii inafafanuliwa na ukweli kwamba katika kikoa changu kulikuwa na mashirika kadhaa ya mteja na watumiaji wao wa wafanyakazi, kwa hiyo mgawanyiko huu.

Kwa hivyo, maandishi yenyewe:
Weka objArgs = WScript.Arguments
ikiwa objArgs.Count = 0 basi
WScript.Echo "Huongeza watumiaji kwenye kikoa."
WScript.Echo "add_to_ad.vbs [jina la faili]"
WScript.Echo "[jina la faili] - faili iliyo na orodha ya watumiaji"
WScript.Echo "umbizo la faili: Ingia; Nenosiri; Jina la kwanza-Patronymic; Jina la mwisho; Nafasi; Idara; Shirika;"
WScript.Toka
mwisho kama
njia = objArgs(0)

Weka fso = CreateObject("Scripting.FileSystemObject")
Weka objFile = fso.OpenTextFile(njia, 1)
Fanya Hadi objFile.AtEndOfStream
str = objFile.ReadLine
kwa i = 1 hadi Len(str) hatua ya 1
strCh = Kati(str, i, 1)
ikiwa strCh = ";" basi
chagua kesi Z
kesi 0
Jina la mtumiaji = strRez " *** Ingia
kesi 1
Nenosiri la mtumiaji = strRez " *** Nenosiri
kesi 2
FirstName = strRez " *** Jina la Kwanza - Patronymic
kesi 3
Jina la Mwisho = strRez " *** Jina la mwisho
kesi 4
Kichwa = strRez " *** Nafasi
kesi 5
Idara = strRez " *** Idara
kesi 6
Kampuni = strRez " *** Shirika
"kesi 7
"Meneja = strRez" *** Meneja
"kesi 8
"Chumba cha Ofisi = strRez " *** Chumba
mwisho kuchagua
strRez = ""
strCh = ""
Z = Z + 1
mwingine
strRez = strRez + strCh
mwisho kama
ijayo
strRez = ""
strCh = ""
Z=0

Weka objRoot = GetObject("LDAP://RootDSE")
Weka objADSystemInfo = CreateObject("ADSystemInfo")
DomainDNSName = objADSystemInfo.DomainDNSName
DomainDN = objRoot.Get("DefaultNamingContext")
ContainerDN = "ou="&Company & "," & DomainDN

PName = UserName & "@" & DomainDNSName ""@snb.local"

"!!! MUHIMU!!!***Tunaonyesha OU ILIYOUMBWA AWALI ambayo watumiaji wapya hukimbilia *******

Weka objOU = GetObject("LDAP://" & ContainerDN)

************************* Unda akaunti ya mtumiaji wa kikoa ****************** * ****
Weka objUser = objOU.Create("Mtumiaji", "cn=" + Jina la mtumiaji)
" **** Ingia *****
objUser.Weka "sAMAccountName", UserName
objUser.SetInfo

"***** neno la siri *******
Weka objUser = GetObject("LDAP://cn=" + Jina la mtumiaji + "," + ContainerDN)
objUser.SetPassword UserPassword

" ******* UPN **********
objUser.Weka "userPrincipalName", pName

"****** kuzima akaunti *******
objUser.AccountDisabled = TRUE

"******** Jina *********
objUser.Weka "GivenName", FirstName

" ***** Jina *********
objUser.Weka "sn", LastName

" ***** Jina la kuonyesha ******
objUser.Weka "displayName", LastName & " " & FirstName

"Waanzilishi
objUser.Weka "initials", kushoto(FirstName,1) & "." "& kushoto(LastName,1)

" ***** Jina la kazi ******
objUser.Weka "kichwa", Kichwa

"***** Idara ******
objUser.Weka "idara", Idara

"Shirika
objUser.Weka "Kampuni", Kampuni

"Msimamizi
"objUser.Put"meneja", Meneja

"chumba
"objUser.Weka "physicalDeliveryOfficeName", Officeroom

" ***** Weka ili kuhitaji kubadilisha nenosiri wakati mwingine unapoingia ***
objUser.Weka "pwdLastSet", CLng(0)

ObjUser.SetInfo

"WScript.Echo "Mtumiaji - " + Jina la mtumiaji + " limeongezwa kwa AD"

Kitanzi
WScript.Echo "Watumiaji waliongezwa kwa AD"
objFile.Funga

nambari ya ziada ya kuingiza kwenye hati:

" Saraka ya nyumbani
"objUser.Weka "HomeDirectory", strHomeDirPath

" Sanduku la barua
"objUser.Weka "mailNickname", strName

"Mifano michache zaidi:
"ObjUser.Weka "Maelezo", "Mwaka wa 2"
"objUser.Weka "physicalDeliveryOfficeName", sOfficeName
"objUser.Weka "ProfilePath", sScPath
"sHDrive objUser.Weka "HomeDrive", "Z"
"objUser.Weka "TerminalServicesProfilePath", sTermProf
"objUser.Weka "TerminalServicesHomeDirectory", sTermHDir

Kanuni kutoka mhariri wa maandishi unahitaji kuihifadhi na kiendelezi .vbs
Hati inazinduliwa kwa kupitisha vigezo kutoka kwa faili.
Kwa mfano: script.vbs users.txt
, Wapi
script.vbs - hati yenyewe
users.txt - faili yenye data ya pembejeo.

Utekelezaji wa hati huchukua sekunde na matokeo ya papo hapo.
Kama unavyoona kutoka kwa msimbo, ikiwa utatoa maoni kwa mistari michache zaidi na kuongeza faili kwa vigezo vya pembejeo, basi unaweza "moja kwa moja" kuingiza Meneja na Nambari ya Chumba. Hati inaweza kuendelezwa bila kikomo. Kwa mfano, ongeza uwezo wa kuingiza sehemu kama vile "Simu" kwa njia ile ile.
Kama kihariri cha maandishi cha Windows, ninaweza kupendekeza Notepad++ ya bure na inayofanya kazi sana.
Moja ya viungo muhimu, ambapo kuna maandishi katika VBS.

Katika sana toleo rahisi Kuunda akaunti mpya ya mtumiaji huchukua kama dakika kadhaa. Fungua muhtasari wa "Saraka Inayotumika - Watumiaji na Kompyuta", nenda kwa kitengo cha shirika unachotaka (OU), chagua Mpya - Mtumiaji kutoka kwenye menyu, ingiza jina la mtumiaji na nenosiri. Hiyo ndiyo yote, akaunti iko tayari, unaweza kufanya kazi.
Sasa fikiria kwamba kwa njia hii unahitaji kuunda sio moja, lakini, sema, akaunti 50, na uifanye mara kwa mara.

Kwa kuwa hakuna uwezekano kwamba mtu yeyote angependa kutumia muda kuandika kitambulisho cha mtumiaji kijinga, tunatoa hitimisho rahisi - mchakato wa kuunda watumiaji ni muhimu. otomatiki. Na PowerShell itatusaidia na hili.

Kwa hivyo, fikiria kwamba tunahitaji haraka kuunda akaunti 50 za aina moja. Wacha tuandike hati ifuatayo:


$username=″mwanafunzi″
$count=1..50
foreach ($i in $count)
( New-AdUser -Name $username$i -Njia $org -passThru )

Tunaendesha hati, na watumiaji 50 walio na majina ya mwanafunzi1-mwanafunzi50 wameundwa katika kitengo cha Wanafunzi. Kwa chaguo-msingi, akaunti zinaundwa zikiwa zimezimwa, na watumiaji bado watalazimika kuwasiliana nawe ili kuziamilisha. Hebu jaribu kuepuka hili:


$username=″mwanafunzi″
$count=1..50
foreach ($i in $count)

-AccountPassword (ConvertTo-SecureString "p@$$w0rd" -AsPlainText -force) -passThru )

Hapa tunaunda Akaunti tayari imetumika na imewekwa p@$$w0rd kama nenosiri chaguo-msingi, na pia onyesha kuibadilisha mara ya kwanza unapoingia kwenye mfumo. Ili kuzuia kusambaza nenosiri kwa fomu wazi, tumia cmdlet ConvertTo-SecureString, ambayo hutafsiri mfuatano wa maandishi katika muundo salama

Sasa hebu tufanye hati yetu inyumbulike zaidi. Kwa kutumia cmdlet Soma-Mwenyeji wacha tuombe hati yetu jina na idadi ya watumiaji:

$org=″OU=Wanafunzi,DC=contoso,DC=com″


$count=1..nambari ya $
foreach ($i in $count)
( New-AdUser -Name $username$i -Path $org

Akaunti zimeundwa na watumiaji wanaweza kuingia na kufanya kazi. Sasa wanahitaji kusanidiwa - kuongezwa kwa vikundi vya usalama, vilivyosajiliwa saraka ya nyumbani, hati za kuingia, nk. Unaweza kufanya hivyo kwa kutumia template. Kwa ufupi, tunaunda akaunti ya kiolezo, kuibinafsisha kikamilifu, na kisha fanya nambari inayotakiwa ya nakala kutoka kwayo kwa kutumia parameta. -Mfano :

$template = Get-AdUser -Identity ″mwanafunzi″
$org=″OU=Wanafunzi,DC=contoso,DC=com″
$username=Soma-Mpangishi ″Ingiza jina″
$number=Soma-Mpangishi ″Ingiza nambari″

$count=1..nambari ya $
foreach ($i in $count)
( New-AdUser -Name $username$i -UserPrincipalName $username$i -Njia $org -Instance `
$template -Imewashwa $True -ChangePasswordAtLogon $true `
-AccountPassword (ConvertTo-SecureString ″p@$$w0rd″ -AsPlainText -force) -passThru )

Njia nyingine ya kuunda akaunti otomatiki ni kuziingiza kutoka kwa faili ya CSV. Njia hii inafaa ikiwa umepewa orodha ya watumiaji, na wanahitaji kuunda akaunti kwa mujibu wa orodha hii. Kwa kawaida, orodha zinazofanana huundwa katika Excel katika mfumo wa jedwali na safu Jina, Nafasi, Idara, nk, takriban kama hii:

Kazi yetu ni kuihifadhi katika umbizo la CSV na kisha kuibainisha kwenye hati kwa kutumia cmdlet Ingiza-CSV. Ikiwa faili yako ya CSV ina safu wima zote zinazohitajika, basi Mtumiaji mpya wa ADUser itazihusisha kiotomatiki na sifa sahihi za mtumiaji:

$csv = Ingiza-CSV -Njia ″C:\scripts\users.csv″
$csv | New-AdUser -Path $org -Imewashwa $True -ChangePasswordAtLogon $true `
-AccountPassword (ConvertTo-SecureString ″p@$$w0rd″ -AsPlainText -force) -passThru

Kwa njia hii unaweza kuingiza mamia ya watumiaji wapya kwa sekunde chache, lakini kuna mitego katika njia hii:

  • Majina ya safu lazima kikamilifu fanana na majina ya sifa za mtumiaji, kwa mfano Jina, Shirika, Kichwa, vinginevyo hakuna kitu kitakachofanya kazi. Orodha kamili sifa zinaweza kutazamwa.
  • Katika meza Lazima lazima ubainishe SamAccountName, vinginevyo utapokea hitilafu ikisema kwamba akaunti tayari ipo.
  • Ikiwa sifa zimewekwa katika mpangilio wa Kirusi, kama katika mfano wetu, basi matatizo na encoding yanaweza kutokea. Kilichonisaidia kutatua shida hii ilikuwa kutoa yaliyomo kwenye faili ya CSV kwa kutumia cmdlet Pata-Yaliyomo na kuihifadhi kwa faili nyingine ya CSV: Get-Content users.csv >> users1.csv. Baada ya hapo, sifa zote za lugha ya Kirusi zilianza kuonyeshwa kwa kawaida.

Na jambo moja muhimu zaidi: kuendesha cmdlet Mtumiaji mpya wa ADUser Lazima kwanza uingize moduli ya Saraka Inayotumika kwa PowerShell. Hii inafanywa na timu Ingiza-Moduli ActiveDirectory, unaweza kubandika tu mstari huu kwenye hati . Isipokuwa ni wakati unaendesha hati kutoka kwa snap-in maalum " Moduli inayotumika Saraka ya Windows PowerShell."

Tunabadilisha uundaji wa akaunti kiotomatiki na kwa kutumia PowerShell

Kwa njia rahisi zaidi, kuunda akaunti mpya ya mtumiaji huchukua dakika chache. Fungua snap-in "Active Directory - Watumiaji na Kompyuta", nenda kwenye kitengo cha shirika kinachohitajika (OU), chagua Mpya - Mtumiaji kutoka kwenye menyu, ingiza jina la mtumiaji na nenosiri. Hiyo ndiyo yote, akaunti iko tayari, unaweza kufanya kazi.
Sasa fikiria kwamba kwa njia hii unahitaji kuunda sio moja, lakini, sema, akaunti 50, na uifanye mara kwa mara.

Kwa kuwa hakuna uwezekano kwamba mtu yeyote anapenda kutumia muda kuandika kitambulisho cha mtumiaji kijinga, tunatoa hitimisho rahisi - mchakato wa kuunda watumiaji lazima otomatiki. Na PowerShell itatusaidia na hili.

Kwa hivyo, fikiria kwamba tunahitaji haraka kuunda akaunti 50 za aina moja. Wacha tuandike hati ifuatayo:


$username=″mwanafunzi″
$count=1..50
foreach ($i in $count)
( New-AdUser -Name $username$i -Njia $org -passThru )

Tunaendesha hati, na watumiaji 50 walio na majina ya mwanafunzi1-mwanafunzi50 wameundwa katika kitengo cha Wanafunzi. Kwa chaguo-msingi, akaunti zinaundwa zikiwa zimezimwa, na watumiaji bado watalazimika kuwasiliana nawe ili kuziamilisha. Hebu jaribu kuepuka hili:

$org=″OU=Wanafunzi,DC=contoso,DC=com″
$username=″mwanafunzi″
$count=1..50
foreach ($i in $count)

-AccountPassword (ConvertTo-SecureString "p@$$w0rd" -AsPlainText -force) -passThru )

Hapa tunaunda akaunti ambazo tayari zinatumika na zimewekwa p@$$w0rd kama nenosiri chaguo-msingi, na pia onyesha kuibadilisha mara ya kwanza unapoingia kwenye mfumo. Ili kuepuka kusambaza nenosiri kwa maandishi wazi, tunatumia cmdlet ConvertTo-SecureString, ambayo hubadilisha mfuatano wa maandishi kuwa umbizo lililolindwa

Sasa hebu tufanye hati yetu inyumbulike zaidi. Kwa kutumia cmdlet Soma-Mwenyeji wacha tuombe hati yetu jina na idadi ya watumiaji:

$org=″OU=Wanafunzi,DC=contoso,DC=com″


$count=1..nambari ya $
foreach ($i in $count)
( New-AdUser -Name $username$i -Njia $org -Imewashwa $True -ChangePasswordAtLogon $true `

Akaunti zimeundwa na watumiaji wanaweza kuingia na kufanya kazi. Sasa wanahitaji kusanidiwa - kuongezwa kwa vikundi vya usalama, vilivyosajiliwa kwenye saraka ya nyumbani, maandishi ya kuingia, nk. Unaweza kufanya hivyo kwa kutumia template. Kwa ufupi, tunaunda akaunti ya kiolezo, kuibinafsisha kikamilifu, na kisha fanya nambari inayotakiwa ya nakala kutoka kwayo kwa kutumia parameta. -Mfano :

$template = Get-AdUser -Identity ″mwanafunzi″

$username=Soma-Mpangishi ″Ingiza jina″
$number=Soma-Mpangishi ″Ingiza nambari″

$count=1..nambari ya $
foreach ($i in $count)
( New-AdUser -Name $username$i -UserPrincipalName $username$i -Njia $org -Instance `
$template -Imewezeshwa $True -ChangePasswordAtLogon $true `
-AccountPassword (ConvertTo-SecureString ″p@$$w0rd″ -AsPlainText -force) -passThru )

Njia nyingine ya kuunda akaunti otomatiki ni kuziingiza kutoka kwa faili ya CSV. Njia hii inafaa ikiwa umepewa orodha ya watumiaji, na wanahitaji kuunda akaunti kwa mujibu wa orodha hii. Kama sheria, orodha kama hizo huundwa katika Excel kwa namna ya jedwali iliyo na safu Jina, Nafasi, Idara, nk, kitu kama hiki:

Kazi yetu ni kuihifadhi katika umbizo la CSV na kisha kuibainisha kwenye hati kwa kutumia cmdlet Ingiza-CSV. Ikiwa faili yako ya CSV ina safu wima zote zinazohitajika, basi Mtumiaji mpya wa ADUser itazihusisha kiotomatiki na sifa sahihi za mtumiaji:

$csv = Ingiza-CSV -Njia ″C:\scripts\users.csv″
$csv | New-AdUser -Path $org -Imewezeshwa $True -ChangePasswordAtLogon $true `
-AccountPassword (ConvertTo-SecureString ″p@$$w0rd″ -AsPlainText -force) -passThru

Kwa njia hii unaweza kuingiza mamia ya watumiaji wapya kwa sekunde chache, lakini kuna mitego katika njia hii:

  • Majina ya safu lazima kikamilifu fanana na majina ya sifa za mtumiaji, kwa mfano Jina, Shirika, Kichwa, vinginevyo hakuna kitu kitakachofanya kazi. Orodha kamili ya sifa inaweza kutazamwa.
  • Katika meza Lazima lazima ubainishe SamAccountName, vinginevyo utapokea hitilafu ikisema kwamba akaunti tayari ipo.
  • Ikiwa sifa zimewekwa katika mpangilio wa Kirusi, kama katika mfano wetu, basi matatizo na encoding yanaweza kutokea. Kilichonisaidia kutatua shida hii ilikuwa kutoa yaliyomo kwenye faili ya CSV kwa kutumia cmdlet Pata-Yaliyomo na kuihifadhi kwa faili nyingine ya CSV: Get-Content users.csv >> users1.csv. Baada ya hapo, sifa zote za lugha ya Kirusi zilianza kuonyeshwa kwa kawaida.

Kwa kumalizia, vidokezo vichache muhimu:

Ili kuendesha cmdlet Mtumiaji mpya wa ADUser Lazima kwanza uingize moduli ya Saraka Inayotumika kwa PowerShell. Hii inafanywa na timu Ingiza-Moduli ActiveDirectory, unaweza kubandika tu mstari huu kwenye hati . Isipokuwa ni wakati unapoendesha hati kutoka kwa Moduli maalum ya Saraka Inayotumika ya Windows PowerShell snap-in.

Moduli ya ActiveDirectory inapatikana kwenye seva chini ya Udhibiti wa Windows Seva 2008R2/2012, na vile vile kwa wafanyikazi Vituo vya Windows 7/8 s kifurushi kilichowekwa Utawala wa RSAT.

Moduli ya ActiveDirectory inahitaji Huduma ya Wavuti ya Saraka Inayotumika (ADWS), ambayo hutoa kiolesura cha wavuti kwa ajili ya kufikia huduma ya saraka. Kwa chaguo-msingi, huduma hii husakinishwa kiotomatiki unapoongeza majukumu ya seva ya AD DS na AD LDS kwenye seva zinazoendesha Windows Server 2008R2 na baadaye. Kwa Windows Server 2003\2008, huduma hii inaweza kusakinishwa tofauti kwa kupakua

Hati hupitia seva zote kutoka kwa Saraka Inayotumika, huangalia muundo kikundi cha ndani Wasimamizi na huhifadhi orodha kwenye faili. Itakuwa muhimu kwa kudumisha usalama katika mazingira na kiasi kikubwa seva.

Hati ya mfano

Maelezo ya hati

1 - 4 Tunafafanua vigezo kwa matumizi zaidi.
1 Njia ya faili ambapo matokeo yatahifadhiwa.
2 Chombo katika Saraka Amilifu ambacho kina akaunti za kompyuta za seva.
3 Pia tunaunda safu ya heshi. Katika Powershell hii lazima ifanyike kabla ya kuitumia.
4 Unda tofauti tupu. Tutaijaza na orodha ya watumiaji ambao ni wanachama wa kikundi cha Wasimamizi.
6 - 21 Kazi ya kutafuta watumiaji katika kikundi cha Wasimamizi.
7 Jina la seva litapitishwa kwa chaguo la kukokotoa. Tutaihifadhi katika tofauti ya $strcomputer
8 - 12 Tunaunda ubaguzi kwa operesheni inayofanywa. Ikiwa ombi halijakamilika kwa usahihi, jina la seva litaonyeshwa kwenye skrini.
9 Tunafikia kitu cha win32_groupuser katika WMI na orodha ya vikundi vya Windows.
11 Ikiwa simu kwa WMI itashindwa (mara nyingi kutokana na kutopatikana kwa RPC), jina la seva ambayo unafikia itaonyeshwa. wakati huu rufaa inaendelea.
13 Hali ambayo kuwepo kwa kutofautiana na orodha ya vikundi vilivyopatikana katika mstari wa 9 ni checked
14 Tunaunda kigezo ambacho kitajumuisha orodha ya watumiaji wa kikundi cha Wasimamizi au Wasimamizi (kwenye seva zilizo na toleo la Kiingereza).
15 - 18 Tunaondoa watumiaji kutoka kwa kikundi cha wasimamizi na kufuta maelezo ya huduma yasiyo ya lazima.
19 Chaguo la kukokotoa linarudisha orodha ya watumiaji.
23 Tunaunda kutofautiana na kuweka ndani yake orodha ya kompyuta ambayo tutatafuta wasimamizi. KATIKA katika mfano huu, hizi ni kompyuta kutoka Active Directory.
24 - 29 Tunatoa seva moja baada ya nyingine ambazo zilipatikana katika mstari wa 23.
25 Tunaendesha kazi na kuipitisha jina la seva. Matokeo ya kazi yameandikwa kwa tofauti ya $UserList
26 Hali hukagua uwepo wa thamani katika kigezo cha $UserList
27 Ikiwa kuna orodha ya watumiaji, iongeze kwenye safu ya $AdminList
31 - 35 Tunapitia safu ya $AdminList na kuongeza kwenye orodha ya seva na wasimamizi wao.
32 Tunaunda tofauti ambayo tunaandika jina la seva.
33 Tunaunda tofauti ambayo tutaweka orodha ya watumiaji wa seva kutoka mstari wa 32.
34 Tofauti ya $ToCSV ina mistari ya faili ya baadaye. Kila mstari ni jina la seva na orodha ya wasimamizi, ikitenganishwa na nusu koloni.
37 - 39 Tunaangalia uwepo wa faili kwenye mfumo ambao tunataka kuweka matokeo ya hati. Ikiwa faili iko, ifute.
41 Tunaunda faili ya kupakia na kuweka orodha ya wasimamizi ndani yake.