Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

AD User Anhand einer CSV Datei erstellen und pflegen

$
0
0

Guten Tag,
ich bin noch recht ein Anfänger mit Powersell und bräuchte Hilfe, da ich einfach nicht schaffe, bei Usern, welche vorher ÜÖÄ im Namen hatten zu erfassen und ihre Einträge zu ändern.

Der Script soll drei Sachen machen.
User über eine CSV Datei erstellen, wenn diese vorhanden sind, dann deren Einträge anpassen(Telefonnummer, Position, Titel, Straße etc) und wenn Sie noch Umlaute im Namen haben die dann beim erstellen umwandeln, da ansonsten Email und Domainlogin Umlaute im Namen haben.

Import-Module ActiveDirectory
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;
$Import =Import-CSV “c:\temp\User.csv”  -Delimiter ";" -Encoding:UTF8
$OU = “OU=Firma,OU=Testuser,DC=zero,DC=int”

Foreach ($user in $Import)
{


function Convert-Umlaut
{
  param
  (
    [Parameter(Mandatory)]
    $Text
  )
    
  $output = $Text.Replace('ö','oe').Replace('ä','ae').Replace('ü','ue').Replace('ß','ss').Replace('Ö','Oe').Replace('Ü','Ue').Replace('Ä','Ae')
  $isCapitalLetter = $Text -ceq $Text.toUpper()
  if ($isCapitalLetter) 
  { 
    $output = $output.toUpper() 
  }
  $output
}
$VNkurz = Convert-Umlaut $user.Vorname
$NNkurz = Convert-Umlaut $user.Nachname
$kurz = ($NNkurz  + $user.Domainname)

#Überprüft, ob User schon existiert
if (Get-ADUser -Filter { SamAccountName -eq $kurz}) 
{
 Set-ADUser -identity ($user.Nachname  + $user.Domainname)`
    -Department $user.Position`
    -Title $user.Titel `
    -Description $user.Visitenkarte`
    -Company $user.Firma `
    -StreetAddress $user.Straße `
    -PostalCode $user.PLZ`
    -City $user.Ort`
    -MobilePhone $user.Mobil`
    -OfficePhone $user.Phone`
    -HomePage $user.Website`
}
else
{
$password = $user.password | ConvertTo-SecureString -AsPlainText -Force
New-ADUser -Name ($user.Nachname + " " + $user.Vorname) `
    -GivenName $user.Vorname `
    -Surname $user.Nachname `
    -UserPrincipalName ($NNkurz  + $user.Domainname + $user.UPN) `
    -sAMAccountName ($NNkurz  + $user.Domainname) `
    -Department $user.Position`
    -Title $user.Titel `
    -Description $user.Visitenkarte`
    -Company $user.Firma `
    -StreetAddress $user.Straße `
    -PostalCode $user.PLZ`
    -City $user.Ort`
    -MobilePhone $user.Mobil`
    -OfficePhone $user.Phone`
    -HomePage $user.Website`
    -Path $OU -AccountPassword $Password -ChangePasswordAtLogon $True -Enabled $True

#Mailbox anlegen
Get-User ($NNkurz  + $user.Domainname + $user.UPN) | Enable-Mailbox -Alias ($VNkurz + "." + $NNkurz) -DisplayName ($user.Nachname +" "+ $user.Vorname) 
  }
 }

Wenn ich den Code ausführe und die User schon existieren, dann bekomme ich folgende Fehlermeldung:

Set-ADUser : replace
In C:\temp\Test4.ps1:33 Zeichen:2+  Set-ADUser -identity ($user.Nachname  + $user.Domainname)`+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo          : InvalidOperation: (ZimmermannM:ADUser) [Set-ADUser], ADInvalidOperationException+ FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.SetADUser

Ich habe schon einige Sachen versucht, was man an den verweisten Funktion sieht. Aber ich komme nicht dahinter, was falsch ist. Vielleicht wird auch mir die falsche Stelle als fehlerhaft angezeigt?


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>