Điểm:0

PowerShell thêm người dùng, nếu có, hãy thêm một số

lá cờ kz

Tôi đang tạo người dùng thư mục hoạt động từ tệp usersFile2.csv Người dùng được thêm vào. Thông tin tài khoản phù hợp được thêm vào, ví dụ: tên, họ, v.v...

Vấn đề. Nếu một người dùng có cùng sAMAccountName tồn tại, tôi muốn tập lệnh thêm một số vào sAMAccountName.. Phần Get-ADuser là nơi tôi cần chỉnh sửa...

# Nhập mô-đun thư mục hoạt động
Nhập mô-đun activedirectory

#Tải dữ liệu từ file.csv vào biến $ADUsers.
$ADUsers = Nhập-csv C:\Users\Administrator\Downloads\Script5\usersFile2.csv

# Đi qua từng hàng có dữ liệu người dùng trong CSV mà chúng tôi vừa nhập.
foreach ($Người dùng trong $ADUsers)
{
    $Username = $User.sAMAAccountName
    $Password = $User.password
    $Firstname = $User.givenName
    $Lastname = $User.sn

    #Để xem người dùng đã tồn tại trong AD chưa.
    nếu (Nhận-ADUser -F {SamAccountName -eq $Username})
    {
         #Kể chuyện gì đã xảy ra.
         Đầu ra ghi "$ Tên người dùng đã tồn tại."
    }
    khác
    {
        #Nếu người dùng không tồn tại, thì hãy tạo tài khoản với các thuộc tính.
        Người dùng AD mới `
            -SamAccountName $Username `
            -UserPrincipalName "[email protected]" `
            -Tên "$Firstname $Lastname" `
            -GivenName $Firstname `
            -Họ $Lastname `
            -Đã bật $True `
            -DisplayName "$Firstname $Lastname" `
            -EmailAddress "[email protected]" `
            -Mô tả $user.Des mô tả `
            -Bộ phận $user.Bộ phận `
            -Văn phòng $user.Office `
            -AccountPassword (chuỗi chuyển đổi bảo mật $Password -AsPlainText -Force) `
            -Đường dẫn 'OU=dd1, OU=My_users, DC=internal, DC=sonic, DC=com' `
            -PasswordNeverExpires $True
            

        #Kể chuyện gì đã xảy ra.
        Kết quả ghi "$Tên người dùng mới và đã được tạo"
    }
}

Hai người dùng từ tệp usersFile2.csv được thêm vào và nó hoạt động. nhưng nếu có một người dùng có cùng sAMAccountName, tôi muốn tập lệnh thêm một số...

GivenName,sn,displayName,UserPrincipalName,mail,sAMAccountName,Office, Department,Description,password,Path
Holger,Svensson,Holger Svensson,[email protected],[email protected],hosv,Executive,Executive,Trưởng phòng Tài chính,Syp9393, 'OU=dd1, OU=My_users, DC=internal, DC=sonic, DC= com'
Marie,Bergqvist,Marie Bergqvist,[email protected],[email protected],mabe,Executives,Executives,Head of RND,Syp9393, 'OU=dd1, OU=My_users, DC=internal, DC=sonic, DC= com'

Tôi rất cần sự giúp đỡ.. Tôi đã cố gắng hàng giờ liền.. Tôi không phải là người bỏ cuộc... mà là anh bạn.. Có ý kiến ​​gì không?

yagmoth555 avatar
lá cờ cn
Tại sao trong đầu ra của bạn, hai người dùng có cùng samaccountname? Tôi hỏi vì cả hai tên người dùng đều thực sự khác nhau, tôi không hiểu điều chỉnh bạn đã thực hiện ở đó. Đối với tôi, đó là một vấn đề ở đó, vì ai đó chắc chắn đã cố đổi tên tài khoản hoặc đã làm điều gì đó không chính xác. Hơn nữa, ngoại lệ đó bạn nên cố gắng khắc phục
lá cờ br
[1] sử dụng `Get-ADUser` để lấy tất cả người dùng có cùng tên người dùng _basic_. `SmithJ` là cơ sở cho cả `SmithJ` và `SMithJ1`, vì vậy bạn có thể lấy bất kỳ kết quả phù hợp nào cho `smithj`. ///// [2] nếu bạn nhận được nhiều hơn 0, hãy sắp xếp theo các chữ số cuối cùng. ///// [3] lấy chữ số cao nhất và tăng nó. ///// [4] sử dụng tên người dùng đó cho tên người dùng mới của bạn - ex = được tìm thấy cao nhất là `SmithJ2`, vì vậy hãy sử dụng `SmithJ3`.
lá cờ kz
yagmoth555 Tôi ghi tất cả thông tin tài khoản người dùng vào tệp đó usersFile2.csv..Nếu tôi viết bằng cùng một sAMAccountName, tập lệnh sẽ thông báo cho tôi, nhưng tôi muốn nó tự động thêm một số, để phân biệt... Tập lệnh không tạo các sAMAccountName ngẫu nhiên, tôi phải nhập chúng vào.. Vấn đề mà bạn đang nói đến, hai người dùng với cùng một samaccountname được tạo là không tồn tại. nhưng cảm ơn bạn! :)
Điểm:0
lá cờ us

Sử dụng một trong khi-loop để cập nhật và kiểm tra tên người dùng cho đến khi bạn tìm thấy tên người dùng hợp lệ:

foreach ($Người dùng trong $ADUsers)
{
    $Username = $User.sAMAAccountName
    $Password = $User.password
    $Firstname = $User.givenName
    $Lastname = $User.sn

    $usernameCounter = 0

    trong khi (Get-ADUser -F {SamAccountName -eq $Username} -EA 0)
    {
        # giá trị hậu tố số
        $usernameCounter++
        # cập nhật tên người dùng của ứng viên
        $Username = $User.sAMAccountName + $usernameCounter
    }

    Người dùng AD mới ...
}
lá cờ kz
Đúng! Cảm ơn. Điều này có vẻ đúng.. Tôi sẽ thử điều này vào buổi sáng.. Tôi sẽ quay lại
lá cờ kz
Trong New-ADUser, tôi viết thông tin về ADuser mới và tôi nhận được thông báo lỗi này: `New-ADUser: Một nỗ lực đã được thực hiện để thêm một đối tượng vào thư mục có tên đã được sử dụng Tại C:\Users\Administrator\Downloads\Script6\script6.ps1:25 char:7 + Người dùng AD mới + ~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (CN=Holger Svens...C=sonic, DC=com:String) [Người dùng AD mới], ADException + FullQualifiedErrorId : ActiveDirectoryServer:8305,Microsoft.ActiveDirectory.Management.Commands.NewADUser` Tôi đoán $usernameCounter không được thêm vào...
lá cờ kz
Nó tạo ra những người dùng có thông tin tài khoản phù hợp, nhưng sau khi tạo những người dùng mới thì không được tạo.. cũng cảm ơn bạn đã cố gắng giúp đỡ...

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.