Puncte:0

PowerShell adaugă utilizatori, dacă există, adaugă un număr

drapel kz

Creez utilizatori din directorul activ din fișierul usersFile2.csv Utilizatorii sunt adăugați. Sunt adăugate informații corecte despre cont, de exemplu prenume, prenume etc...

Problema. Dacă există un utilizator cu același sAMAccountName, vreau ca scriptul să adauge un număr la sAMAccountName.. Partea Get-ADuser este locul unde trebuie să editez...

# Importă modulul Active Directory
Import-Module activedirectory

#Încărcați datele din file.csv în variabila $ADUsers.
$ADUsers = Import-csv C:\Users\Administrator\Downloads\Script5\usersFile2.csv

#Parcurgeți fiecare rând care conține date despre utilizator în fișierul CSV pe care tocmai l-am importat.
foreach ($User în $ADUsers)
{
    $Username = $User.sAMAccountName
    $Parolă = $Utilizator.parolă
    $Firstname = $User.givenName
    $Lastname = $User.sn

    #Pentru a vedea dacă utilizatorul există deja în AD.
    if (Get-ADUser -F {SamAccountName -eq $Username})
    {
         #Spune ce s-a întâmplat.
         Scrie-Ieșire „$Nume utilizator a existat deja”.
    }
    altfel
    {
        #Dacă utilizatorul nu există, atunci creați contul cu atributele.
        New-ADUser `
            -SamAccountName $Nume utilizator `
            -UserPrincipalName „[email protected]” `
            -Nume „$Firstname $Lastname” `
            -GivenName $Firstname `
            -Nume $Nume `
            -Activat $True `
            -DisplayName „$Firstname $Lastname” `
            -Adresa de e-mail „[email protected]” `
            -Descriere $user.Description `
            -Departamentul $user.Departamentul `
            -Office $user.Office `
            -AccountPassword (convertto-securestring $Password -AsPlainText -Force) `
            -Calea 'OU=dd1, OU=My_users, DC=intern, DC=sonic, DC=com' `
            -PasswordNeverExpires $True
            

        #Spune ce s-a întâmplat.
        Ieșire de scriere „$Username a fost nou și a fost creat”
    }
}

Se adaugă doi utilizatori din fișierul usersFile2.csv și funcționează. dar dacă există un utilizator cu același sAMAccountName, vreau ca scriptul să adauge un număr...

givenName,sn,displayName,UserPrincipalName,mail,sAMAccountName,Office,Department,Description,parola,Path
Holger,Svensson,Holger Svensson,[email protected],[email protected],hosv,Directivi,Executivi,Șef de finanțe,Syp9393, 'OU=dd1, OU=My_users, DC=intern, DC=sonic, DC= com'
Marie,Bergqvist,Marie Bergqvist,[email protected],[email protected],mabe,Executivi,Executivi,Șef RND,Syp9393, 'OU=dd1, OU=My_users, DC=intern, DC=sonic, DC= com'

Am mare nevoie de ajutor.. Am încercat ore întregi.. Nu sunt cel care să renunțe... dar omule.. Aveți idei?

yagmoth555 avatar
drapel cn
De ce în ieșirea dvs. doi utilizatori au același samaccountname? Întreb, deoarece ambele nume de utilizator sunt foarte diferite, nu înțeleg modificarea pe care ai făcut-o acolo. Pentru mine este o problemă acolo, deoarece cineva cu siguranță a încercat să redenumească un cont sau a făcut ceva nu corect. Este mai mult acea excepție pe care ar trebui să încerci să o rezolvi
drapel br
[1] utilizați `Get-ADUser` pentru a captura toți utilizatorii cu același nume de utilizator _de bază_. `SmithJ` este baza atât pentru `SmithJ`, cât și pentru `SMithJ1`, așa că ați lua orice potrivire pentru `smithj`. ///// [2] dacă primiți înapoi mai mult de zero, sortați după cifrele finale. ///// [3] luați cea mai mare cifră și creșteți-o. ///// [4] folosește-l pentru noul tău nume de utilizator - ex = găsit cel mai mare este `SmithJ2`, deci folosește `SmithJ3`.
drapel kz
yagmoth555 Scriu toate informațiile despre contul de utilizator în acel fișier usersFile2.csv..Dacă scriu în același sAMAccountName, scriptul mă anunță, dar vreau să adauge automat un număr, pentru a diferenția... Scriptul nu creează sAMAccountNames aleatoriu, trebuie să le introduc... Problema despre care vorbim, doi utilizatori cu același nume de cont care este creat, nu există. dar mulțumesc! :)
Puncte:0
drapel us

Folosește o in timp ce-buclă pentru a actualiza și a testa numele de utilizator până când găsiți unul valid:

foreach ($User în $ADUsers)
{
    $Username = $User.sAMAccountName
    $Parolă = $Utilizator.parolă
    $Firstname = $User.givenName
    $Lastname = $User.sn

    $usernameCounter = 0

    while(Get-ADUser -F {SamAccountName -eq $Username} -EA 0)
    {
        # bump valoarea sufixului numeric
        $usernameCounter++
        # actualizați numele de utilizator al candidatului
        $Username = $User.sAMAccountName + $usernameCounter
    }

    Utilizator ADU nou...
}
drapel kz
Da! mulțumesc. Pare corect.. Voi încerca asta dimineață.. Mă voi întoarce
drapel kz
Sub New-ADUser, scriu informațiile new-ADuser și primesc acest mesaj de eroare: `New-ADUser: S-a încercat să adăugați un obiect în director cu un nume care este deja în uz. La C:\Users\Administrator\Downloads\Script6\script6.ps1:25 char:7 + Utilizator ADU nou + ~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (CN=Holger Svens...C=sonic, DC=com:String) [New-ADUser], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:8305,Microsoft.ActiveDirectory.Management.Commands.NewADUser` Bănuiesc că $usernameCounter nu a fost adăugat...
drapel kz
Acesta creează utilizatorii cu informațiile corecte de cont, dar odată create altele noi nu sunt create.. de asemenea, vă mulțumesc pentru că încercați să ajutați...

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.