none
Script zum Anlegen neuer Benutzer RRS feed

  • Frage

  • Hallo zusammen,

    bei uns kommt es nun immer häufiger vor, dass Praktikanten und Aushilfen kurzfristig eingestellt werden.

    Das bedeutet, dass kurzfristig auch Benutzerkonten(AD 2012R2) mit den entsprechenden Attributen (Homepfad, Profilpfad, ...), den Gruppenmitgliedschaften und den Postfächern (Exchange 2013) angelegt werden müssen.

    Nun bin ich auf der Suche nach einem Script, was mir die Arbeit beim Anlegen der User vereinfacht.

    Hat nicht vielleicht jemand so eine Script für mich (oder ein kostenfreies Tool), dass mir das Anlegen der Benutzer vereinfacht?

    Zur Not müsste ich mir eine eigenes Script bauen, was aber etwas(viel) länger dauern würde.

    Dienstag, 9. August 2016 07:52

Antworten

  • Moin,

    Zur Not müsste ich mir eine eigenes Script bauen, was aber etwas(viel) länger dauern würde.

    ...das Ergebnis aber genau Deine Gegebenheiten widerspiegeln würde. Es gibt im Internet tonnenweise User-Anlegeskripte (Google hilft hier weiter), viele machen Exchange mit, einige auch Lync und einige wenige SharePoint - jedoch musst Du die Parameter, die umgebungsspezifisch sind, immer irgendwie übergeben.

    Du musst realistisch bewerten, wie variabel Dein Provisionierungsprozess tatsächlich ist. Ist er halbwegs starr, dann hast Du das Skript vermutlich schneller selber geschrieben als 3-4 Sachen aus dem Internet zu evaluieren, durch das jeweilige Parameter Set durchzusteigen usw. Wenn eine hohe Variabilität erforderlich ist, lohnt es sich vermutlich, ein paar Stunden in die Suche und Evaluierung zu investieren.

    Denk bei so etwas bitte auch immer an die Deprovisionierung - gerade bei temporären Arbeitskräften steht dieser Teil des Identity Lifecycle immer wieder an.


    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    Dienstag, 9. August 2016 08:17
  • Hallo Peter,

    mein Skript ist sehr auf die hier laufende AD-Struktur angepasst, daher musst Du es für Dich noch mal anpassen. Normalweise habe ich auch noch eine GUI davor, da das aber über 1000 Codezeilen sind, poste ich nur einen Teil der eigentlichen Funktionen.

    User im AD anlegen, mit Basisverzeichnis und setzen diverser Attribute:

    function create_ad_user
    {
    
    New-ADUser -SamAccountName $username -GivenName $firstname -Surname $secondname -DisplayName $fullname -Name $fullname -UserPrincipalName $upn -Path $adpath -AccountPassword (ConvertTo-SecureString -AsPlainText $userpw -Force) -EmailAddress $useremail -HomeDrive "H:" -HomeDirectory $homedir
    Write-Host "Der Benutzer $username wurde unter $adpath angelegt."
    
    Set-ADUser -Identity $username -ChangePasswordAtLogon $true
    Set-ADUser -Identity $username -Enabled $true
    Write-Host "Der Benutzer $username wurde aktiviert."
    
    # Create the folder on the root of the common Users Share
    NEW-ITEM –path $homedir -type directory -force
    $IdentityReference='DOMAIN\’+$username
    
    # Set parameters for Access rule
    $FileSystemAccessRights=[System.Security.AccessControl.FileSystemRights]”FullControl”
    $InheritanceFlags=[System.Security.AccessControl.InheritanceFlags]”ContainerInherit, ObjectInherit”
    $PropagationFlags=[System.Security.AccessControl.PropagationFlags]”None”
    $AccessControl=[System.Security.AccessControl.AccessControlType]”Allow”
    
    # Build Access Rule from parameters
    $AccessRule=NEW-OBJECT System.Security.AccessControl.FileSystemAccessRule($IdentityReference,$FileSystemAccessRights,$InheritanceFlags,$PropagationFlags,$AccessControl)
    
    # Get current Access Rule from Home Folder for User
    $HomeFolderACL=GET-ACL $homedir
    $HomeFolderACL.AddAccessRule($AccessRule)
    SET-ACL –path $homedir -AclObject $HomeFolderACL
    
    Write-Host "$homedir wurde für Benutzer $username erstellt."
    
    Set-ADUser -Identity $username -streetAddress "Strasse"
    Set-ADUser -Identity $username -office "Ort"
    Set-ADUser -Identity $username -city "Ort"
    Set-ADUser -Identity $username -state "Bundesland"
    Set-ADUser -Identity $username -postalCode "PLZ"
    Write-Host "Der Standort von $username wurde auf Ort gesetzt."
      
    Set-ADUser -Identity $username -Title $jobtitle
    Write-Host "Der Jobtitel von $username wurde auf $jobtitle geaendert."
    Set-ADUser -Identity $username -Department $department
    Write-Host "Die Abteilung von $username wurde auf $department geaendert."
    Set-ADUser -Identity $username -Manager $head
    Write-Host "Der Head von $username wurde auf $head geaendert."
    Set-ADUser -Identity $username -Company "Firma GmbH"
    Write-Host "Die Firma von $username wurde auf Firma GmbH geaendert."
    
    }

    Benutzer im Exchange (Online) anlegen und Standort festlegen:

    function create_exchange_user { New-Mailbox -Alias $username -Name $fullname -FirstName $firstname -LastName $secondname -DisplayName $fullname -MicrosoftOnlineServicesID $useremail -Password (ConvertTo-SecureString -String $userpw -AsPlainText -Force) -ResetPasswordOnNextLogon $true Set-User -Identity $useremail -Title $jobtitle Write-Host "Der Jobtitel von $useremail wurde auf $jobtitle geaendert." Set-User -Identity $useremail -Department $department Write-Host "Die Abteilung von $useremail wurde auf $department geaendert." Set-User -Identity $useremail -Manager $head Write-Host "Der Head von $useremail wurde auf $head geaendert." Set-User -Identity $useremail -Company "Firma GmbH" Write-Host "Die Firma von $useremail wurde auf Firma GmbH geaendert." Set-User -Identity $useremail -streetAddress "Straße" Set-User -Identity $useremail -office "Ort" Set-User -Identity $useremail -city "Ort" Set-User -Identity $useremail -state "Bundesland" Set-User -Identity $useremail -postalCode "PLZ" Write-Host "Der Standort von $username wurde auf Ort gesetzt."

     Set-MsolUser -UserPrincipalName $useremail -UsageLocation "DE"
    Write-Host "Der Benutzerstandort von $username wurde auf DE gesetzt"
    Set-MsolUserLicense -UserPrincipalName $useremail -AddLicenses "asdasd:EXCHANGESTANDARD"
    Write-Host "Dem Benutzer $username wurde eine Exchange Online (Plan 1 ) Lizenz zugewiesen."
    Set-MsolUserLicense -UserPrincipalName $useremail -AddLicenses "asdasd:O365_BUSINESS"
    Write-Host "Dem Benutzer $username wurde eine Office 365 Business Lizenz zugewiesen." }


    Ich hoffe es nützt Dir etwas, wenigstens um einen Anfang zu haben. Hinzufügen zu Gruppen, Verteiler etc habe ich jetzt mal rausgelassen.

    Die Befehle dazu lauten:

    Add-ADGroupMember -Identity Gruppenname -Members $username 
    Add-DistributionGroupMember -Identity SMTPAdressedesVerteilers  -Member $useremail -Confirm:$false


    Freundliche Grüße
    Sandro

    MCSA: Windows Server 2012 in spe ;)
    Fachinformatiker Fachrichtung Systemintegration (IHK, 07/2013)

    XING: Zum Profil
    LinkedIn: Zum Profil
    Facebook: Zum Profil




    Dienstag, 9. August 2016 08:18
  • Hi,

    das AD Verwaltungcenter hilft dir da schon um einiges weiter(dazu gibt es auch z.B Videos bei youtube)

    Scripte findest du ebenfalls , wie geschrieben, haufenweise im Netz oder hier im Thread.

    Du Kannst auch mit Vorlageusern arbeiten.Dazu die Einstellungen(Adresse,Website etc.) vornehmen und die Pfade über Varibalen füllen,

    z.B. den Profilpfad mit \\Server\Benutzer\%username% angeben

    %username% wird dann automatisch befüllt.

    Das hängt allerdings alles auch, wie Evgenij geschrieben hat, von den Anforderungen und dem Aufwand ab


    Gruß Toni! Wenn Dir meine Antwort hilft, markiere sie bitte als Antwort! Vielen Dank!


    Dienstag, 9. August 2016 08:40

Alle Antworten

  • Hallo Peter,

    über das Active Directory Verwaltungscenter kannst du dir alle Aufgaben welche du über die GUI machst als Powershell Skript ausgeben lassen.

    https://mva.microsoft.com/de-de/training-courses/servermanagement-und-automatisierung-inkl-powershell-40-11061?l=42AxGmHAB_4304984382


    Benjamin Hoch
    MCSE: Data Platform
    MCSA: SQL Server 2012/2014
    MCSA: Windows Server 2012
    Blog

    Dienstag, 9. August 2016 08:01
  • Moin,

    Zur Not müsste ich mir eine eigenes Script bauen, was aber etwas(viel) länger dauern würde.

    ...das Ergebnis aber genau Deine Gegebenheiten widerspiegeln würde. Es gibt im Internet tonnenweise User-Anlegeskripte (Google hilft hier weiter), viele machen Exchange mit, einige auch Lync und einige wenige SharePoint - jedoch musst Du die Parameter, die umgebungsspezifisch sind, immer irgendwie übergeben.

    Du musst realistisch bewerten, wie variabel Dein Provisionierungsprozess tatsächlich ist. Ist er halbwegs starr, dann hast Du das Skript vermutlich schneller selber geschrieben als 3-4 Sachen aus dem Internet zu evaluieren, durch das jeweilige Parameter Set durchzusteigen usw. Wenn eine hohe Variabilität erforderlich ist, lohnt es sich vermutlich, ein paar Stunden in die Suche und Evaluierung zu investieren.

    Denk bei so etwas bitte auch immer an die Deprovisionierung - gerade bei temporären Arbeitskräften steht dieser Teil des Identity Lifecycle immer wieder an.


    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    Dienstag, 9. August 2016 08:17
  • Hallo Peter,

    mein Skript ist sehr auf die hier laufende AD-Struktur angepasst, daher musst Du es für Dich noch mal anpassen. Normalweise habe ich auch noch eine GUI davor, da das aber über 1000 Codezeilen sind, poste ich nur einen Teil der eigentlichen Funktionen.

    User im AD anlegen, mit Basisverzeichnis und setzen diverser Attribute:

    function create_ad_user
    {
    
    New-ADUser -SamAccountName $username -GivenName $firstname -Surname $secondname -DisplayName $fullname -Name $fullname -UserPrincipalName $upn -Path $adpath -AccountPassword (ConvertTo-SecureString -AsPlainText $userpw -Force) -EmailAddress $useremail -HomeDrive "H:" -HomeDirectory $homedir
    Write-Host "Der Benutzer $username wurde unter $adpath angelegt."
    
    Set-ADUser -Identity $username -ChangePasswordAtLogon $true
    Set-ADUser -Identity $username -Enabled $true
    Write-Host "Der Benutzer $username wurde aktiviert."
    
    # Create the folder on the root of the common Users Share
    NEW-ITEM –path $homedir -type directory -force
    $IdentityReference='DOMAIN\’+$username
    
    # Set parameters for Access rule
    $FileSystemAccessRights=[System.Security.AccessControl.FileSystemRights]”FullControl”
    $InheritanceFlags=[System.Security.AccessControl.InheritanceFlags]”ContainerInherit, ObjectInherit”
    $PropagationFlags=[System.Security.AccessControl.PropagationFlags]”None”
    $AccessControl=[System.Security.AccessControl.AccessControlType]”Allow”
    
    # Build Access Rule from parameters
    $AccessRule=NEW-OBJECT System.Security.AccessControl.FileSystemAccessRule($IdentityReference,$FileSystemAccessRights,$InheritanceFlags,$PropagationFlags,$AccessControl)
    
    # Get current Access Rule from Home Folder for User
    $HomeFolderACL=GET-ACL $homedir
    $HomeFolderACL.AddAccessRule($AccessRule)
    SET-ACL –path $homedir -AclObject $HomeFolderACL
    
    Write-Host "$homedir wurde für Benutzer $username erstellt."
    
    Set-ADUser -Identity $username -streetAddress "Strasse"
    Set-ADUser -Identity $username -office "Ort"
    Set-ADUser -Identity $username -city "Ort"
    Set-ADUser -Identity $username -state "Bundesland"
    Set-ADUser -Identity $username -postalCode "PLZ"
    Write-Host "Der Standort von $username wurde auf Ort gesetzt."
      
    Set-ADUser -Identity $username -Title $jobtitle
    Write-Host "Der Jobtitel von $username wurde auf $jobtitle geaendert."
    Set-ADUser -Identity $username -Department $department
    Write-Host "Die Abteilung von $username wurde auf $department geaendert."
    Set-ADUser -Identity $username -Manager $head
    Write-Host "Der Head von $username wurde auf $head geaendert."
    Set-ADUser -Identity $username -Company "Firma GmbH"
    Write-Host "Die Firma von $username wurde auf Firma GmbH geaendert."
    
    }

    Benutzer im Exchange (Online) anlegen und Standort festlegen:

    function create_exchange_user { New-Mailbox -Alias $username -Name $fullname -FirstName $firstname -LastName $secondname -DisplayName $fullname -MicrosoftOnlineServicesID $useremail -Password (ConvertTo-SecureString -String $userpw -AsPlainText -Force) -ResetPasswordOnNextLogon $true Set-User -Identity $useremail -Title $jobtitle Write-Host "Der Jobtitel von $useremail wurde auf $jobtitle geaendert." Set-User -Identity $useremail -Department $department Write-Host "Die Abteilung von $useremail wurde auf $department geaendert." Set-User -Identity $useremail -Manager $head Write-Host "Der Head von $useremail wurde auf $head geaendert." Set-User -Identity $useremail -Company "Firma GmbH" Write-Host "Die Firma von $useremail wurde auf Firma GmbH geaendert." Set-User -Identity $useremail -streetAddress "Straße" Set-User -Identity $useremail -office "Ort" Set-User -Identity $useremail -city "Ort" Set-User -Identity $useremail -state "Bundesland" Set-User -Identity $useremail -postalCode "PLZ" Write-Host "Der Standort von $username wurde auf Ort gesetzt."

     Set-MsolUser -UserPrincipalName $useremail -UsageLocation "DE"
    Write-Host "Der Benutzerstandort von $username wurde auf DE gesetzt"
    Set-MsolUserLicense -UserPrincipalName $useremail -AddLicenses "asdasd:EXCHANGESTANDARD"
    Write-Host "Dem Benutzer $username wurde eine Exchange Online (Plan 1 ) Lizenz zugewiesen."
    Set-MsolUserLicense -UserPrincipalName $useremail -AddLicenses "asdasd:O365_BUSINESS"
    Write-Host "Dem Benutzer $username wurde eine Office 365 Business Lizenz zugewiesen." }


    Ich hoffe es nützt Dir etwas, wenigstens um einen Anfang zu haben. Hinzufügen zu Gruppen, Verteiler etc habe ich jetzt mal rausgelassen.

    Die Befehle dazu lauten:

    Add-ADGroupMember -Identity Gruppenname -Members $username 
    Add-DistributionGroupMember -Identity SMTPAdressedesVerteilers  -Member $useremail -Confirm:$false


    Freundliche Grüße
    Sandro

    MCSA: Windows Server 2012 in spe ;)
    Fachinformatiker Fachrichtung Systemintegration (IHK, 07/2013)

    XING: Zum Profil
    LinkedIn: Zum Profil
    Facebook: Zum Profil




    Dienstag, 9. August 2016 08:18
  • Hi,

    das AD Verwaltungcenter hilft dir da schon um einiges weiter(dazu gibt es auch z.B Videos bei youtube)

    Scripte findest du ebenfalls , wie geschrieben, haufenweise im Netz oder hier im Thread.

    Du Kannst auch mit Vorlageusern arbeiten.Dazu die Einstellungen(Adresse,Website etc.) vornehmen und die Pfade über Varibalen füllen,

    z.B. den Profilpfad mit \\Server\Benutzer\%username% angeben

    %username% wird dann automatisch befüllt.

    Das hängt allerdings alles auch, wie Evgenij geschrieben hat, von den Anforderungen und dem Aufwand ab


    Gruß Toni! Wenn Dir meine Antwort hilft, markiere sie bitte als Antwort! Vielen Dank!


    Dienstag, 9. August 2016 08:40
  • Vielen Dank an alle.

    Ihr habt mir sehr geholfen.

    Dienstag, 9. August 2016 12:15
  • Bitte markiere noch die Lösung! Danke

    Gruß Toni! Wenn Dir meine Antwort hilft, markiere sie bitte als Antwort! Vielen Dank!

    Dienstag, 9. August 2016 16:45