Score:0

PowerShell เพิ่มผู้ใช้ หากมีอยู่ ให้เพิ่มตัวเลข

ธง kz

ฉันกำลังสร้างผู้ใช้ไดเรกทอรีที่ใช้งานอยู่จากไฟล์ usersFile2.csv ผู้ใช้ได้รับการเพิ่ม เพิ่มข้อมูลบัญชีที่ถูกต้อง เช่น ชื่อ นามสกุล เป็นต้น...

ปัญหา. หากมีผู้ใช้ที่มี sAMAccountName เดียวกันอยู่ ฉันต้องการให้สคริปต์เพิ่มตัวเลขให้กับ sAMAccountName.. ส่วน Get-ADuser คือส่วนที่ฉันต้องแก้ไข...

# นำเข้าโมดูลไดเรกทอรีที่ใช้งานอยู่
นำเข้าโมดูล activedirectory

#โหลดข้อมูลจาก file.csv ไปยังตัวแปร $ADUsers
$ADUsers = นำเข้า-csv C:\Users\Administrator\Downloads\Script5\usersFile2.csv

#ผ่านแต่ละแถวที่มีข้อมูลผู้ใช้ใน CSV ที่เราเพิ่งนำเข้า
foreach ($User ใน $ADUsers)
{
    $ชื่อผู้ใช้ = $User.sAMAccountName
    $รหัสผ่าน = $User.password
    $ชื่อ = $User.givenName
    $Lastname = $User.sn

    #เพื่อดูว่ามีผู้ใช้อยู่แล้วใน AD
    ถ้า (รับ ADUser -F {SamAccountName -eq $ชื่อผู้ใช้})
    {
         #เล่าสิ่งที่เกิดขึ้น
         เขียนผลลัพธ์ "ชื่อผู้ใช้ $ มีอยู่แล้ว"
    }
    อื่น
    {
        #หากไม่มีผู้ใช้ ให้สร้างบัญชีที่มีแอตทริบิวต์
        ใหม่-ADUSer `
            -SamAccountName $ชื่อผู้ใช้ `
            -UserPrincipalName "[email protected]" `
            -ชื่อ "$Firstname $Lastname" `
            -GivenName $Firstname `
            -นามสกุล $Lastname `
            -เปิดใช้งาน $True `
            -DisplayName "$Firstname $Lastname" `
            -ที่อยู่อีเมล "[email protected]" `
            - คำอธิบาย $user คำอธิบาย `
            -Department $user.Department `
            -สำนักงาน $user.Office `
            -AccountPassword (convertto-securestring $Password -AsPlainText -Force) `
            -เส้นทาง 'OU=dd1, OU=My_users, DC=ภายใน, DC=sonic, DC=com' `
            -รหัสผ่านไม่มีวันหมดอายุ $True
            

        #เล่าสิ่งที่เกิดขึ้น
        เขียนผลลัพธ์ "ชื่อผู้ใช้ $ เป็นชื่อใหม่และถูกสร้างขึ้น"
    }
}

มีการเพิ่มผู้ใช้สองคนจากไฟล์ usersFile2.csv และใช้งานได้ แต่ถ้ามีผู้ใช้ที่มี sAMAccountName เหมือนกัน ฉันต้องการให้สคริปต์เพิ่มจำนวน...

givenName,sn,displayName,UserPrincipalName,mail,sAMAccountName,Office,Department,Description,password,Path
Holger,Svensson,Holger Svensson,[email protected],[email protected],hosv,ผู้บริหาร,ผู้บริหาร,หัวหน้าฝ่ายการเงิน,Syp9393, 'OU=dd1, OU=My_users, DC=internal, DC=sonic, DC= คอม'
Marie,Bergqvist,Marie Bergqvist,[email protected],[email protected],mabe,ผู้บริหาร,ผู้บริหาร,หัวหน้า RND,Syp9393, 'OU=dd1, OU=My_users, DC=internal, DC=sonic, DC= คอม'

ฉันต้องการความช่วยเหลืออย่างมาก.. ฉันพยายามมาหลายชั่วโมงแล้ว.. ฉันไม่ใช่คนที่จะยอมแพ้...แต่ผู้ชาย..

yagmoth555 avatar
cn flag
เหตุใดในผลลัพธ์ของคุณผู้ใช้สองคนจึงมีชื่อเดียวกัน samaccountname ? ฉันถามเนื่องจากชื่อผู้ใช้ทั้งสองแตกต่างกันมาก ฉันไม่เข้าใจการปรับแต่งที่คุณทำที่นั่น สำหรับฉันมันมีปัญหาตรงที่มีคนพยายามเปลี่ยนชื่อบัญชีหรือทำอะไรที่ไม่ถูกต้อง มันเป็นข้อยกเว้นที่คุณควรพยายามแก้ไข
br flag
[1] ใช้ `Get-ADUSer` เพื่อดึงผู้ใช้ทั้งหมดที่มีชื่อผู้ใช้ _basic_ เหมือนกัน `SmithJ` เป็นพื้นฐานสำหรับทั้ง `SmithJ` และ `SMithJ1` ดังนั้นคุณจะเลือกคู่ไหนก็ได้สำหรับ `smithj` ///// [2] ถ้าได้กลับมากกว่าศูนย์ ให้เรียงตามหลักสุดท้าย ///// [3] คว้าหลักสูงสุดและเพิ่มมัน ///// [4] ใช้สำหรับชื่อผู้ใช้ใหม่ของคุณ - เช่น = พบสูงสุดคือ `SmithJ2` ดังนั้นใช้ `SmithJ3`
kz flag
yagmoth555 ฉันเขียนข้อมูลบัญชีผู้ใช้ทั้งหมดลงในไฟล์ usersFile2.csv.ถ้าฉันเขียนด้วย sAMAccountName เดียวกัน สคริปต์จะแจ้งเตือนฉัน แต่ฉันต้องการให้เพิ่มจำนวนโดยอัตโนมัติ เพื่อแยกความแตกต่าง... สคริปต์ไม่สร้าง sAMAccountNames แบบสุ่ม ฉันต้องพิมพ์ลงไป... ปัญหาที่คุณพูดถึง ผู้ใช้สองคน ด้วยชื่อบัญชีเดียวกันที่ถูกสร้างขึ้นนั้นไม่มีอยู่จริง แต่ขอบคุณ! :)
Score:0
ธง us

ใช้ ในขณะที่-วนซ้ำเพื่ออัปเดตและทดสอบชื่อผู้ใช้จนกว่าคุณจะพบชื่อที่ถูกต้อง:

foreach ($User ใน $ADUsers)
{
    $ชื่อผู้ใช้ = $User.sAMAccountName
    $รหัสผ่าน = $User.password
    $ชื่อ = $User.givenName
    $Lastname = $User.sn

    $usernameCounter = 0

    ในขณะที่ (รับ ADUser -F {SamAccountName -eq $ชื่อผู้ใช้} -EA 0)
    {
        # ชนค่าต่อท้ายตัวเลข
        $usernameCounter++
        # อัปเดตชื่อผู้ใช้ของผู้สมัคร
        $ชื่อผู้ใช้ = $User.sAMAccountName + $usernameCounter
    }

    ใหม่-ADUSer ...
}
kz flag
ใช่! ขอบคุณ. นี้ถูก..จะลองทำดูตอนเช้า..จะกลับ.
kz flag
ภายใต้ New-ADUSer ฉันเขียนข้อมูล new-ADuser และฉันได้รับข้อความแสดงข้อผิดพลาดนี้: `New-ADUSer : มีการพยายามเพิ่มวัตถุในไดเร็กทอรีด้วยชื่อที่มีการใช้งานแล้ว ที่ C:\Users\Administrator\Downloads\Script6\script6.ps1:25 char:7 + ผู้ใช้ ADU ใหม่ + ~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (CN=Holger Svens...C=sonic, DC=com:String) [New-ADUSer], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:8305,Microsoft.ActiveDirectory.Management.Commands.NewADUSer` ฉันเดาว่าไม่ได้เพิ่ม $usernameCounter...
kz flag
มันสร้างผู้ใช้ด้วยข้อมูลบัญชีที่ถูกต้อง แต่เมื่อสร้างใหม่แล้วจะไม่ถูกสร้างขึ้น .. ขอบคุณที่พยายามช่วย...

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา