Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

AD User Anhand einer CSV Datei erstellen und pflegen

Mitglied: Bananenkoenig

Bananenkoenig (Level 1) - Jetzt verbinden

23.10.2019 um 10:26 Uhr, 189 Aufrufe, 2 Kommentare

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.


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

06.
Foreach ($user in $Import)
07.
{
08.

09.

10.
function Convert-Umlaut
11.
{
12.
  param
13.
  (
14.
    [Parameter(Mandatory)]
15.
    $Text
16.
  )
17.
    
18.
  $output = $Text.Replace('ö','oe').Replace('ä','ae').Replace('ü','ue').Replace('ß','ss').Replace('Ö','Oe').Replace('Ü','Ue').Replace('Ä','Ae')
19.
  $isCapitalLetter = $Text -ceq $Text.toUpper()
20.
  if ($isCapitalLetter) 
21.
  { 
22.
    $output = $output.toUpper() 
23.
  }
24.
  $output
25.
}
26.
$VNkurz = Convert-Umlaut $user.Vorname
27.
$NNkurz = Convert-Umlaut $user.Nachname
28.
$kurz = ($NNkurz  + $user.Domainname)
29.

30.
#Überprüft, ob User schon existiert
31.
if (Get-ADUser -Filter { SamAccountName -eq $kurz}) 
32.
{
33.
 Set-ADUser -identity ($user.Nachname  + $user.Domainname)`
34.
    -Department $user.Position`
35.
    -Title $user.Titel `
36.
    -Description $user.Visitenkarte`
37.
    -Company $user.Firma `
38.
    -StreetAddress $user.Straße `
39.
    -PostalCode $user.PLZ`
40.
    -City $user.Ort`
41.
    -MobilePhone $user.Mobil`
42.
    -OfficePhone $user.Phone`
43.
    -HomePage $user.Website`
44.
}
45.
else
46.
{
47.
$password = $user.password | ConvertTo-SecureString -AsPlainText -Force
48.
New-ADUser -Name ($user.Nachname + " " + $user.Vorname) `
49.
    -GivenName $user.Vorname `
50.
    -Surname $user.Nachname `
51.
    -UserPrincipalName ($NNkurz  + $user.Domainname + $user.UPN) `
52.
    -sAMAccountName ($NNkurz  + $user.Domainname) `
53.
    -Department $user.Position`
54.
    -Title $user.Titel `
55.
    -Description $user.Visitenkarte`
56.
    -Company $user.Firma `
57.
    -StreetAddress $user.Straße `
58.
    -PostalCode $user.PLZ`
59.
    -City $user.Ort`
60.
    -MobilePhone $user.Mobil`
61.
    -OfficePhone $user.Phone`
62.
    -HomePage $user.Website`
63.
    -Path $OU -AccountPassword $Password -ChangePasswordAtLogon $True -Enabled $True
64.

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

Wenn ich den Code ausführe und die User schon existieren, dann bekomme ich folgende Fehlermeldung:
01.
Set-ADUser : replace
02.
In C:\temp\Test4.ps1:33 Zeichen:2
03.
+  Set-ADUser -identity ($user.Nachname  + $user.Domainname)`
04.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
05.
    + CategoryInfo          : InvalidOperation: (ZimmermannM:ADUser) [Set-ADUser], ADInvalidOperationException
06.
    + 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?
Mitglied: Bitboy
23.10.2019 um 10:36 Uhr
Moin,

habs nur überflogen und bin nicht ganz sicher was du erreichen möchtest.
der -identity Parameter definiert ja den User den du ändern möchtest. "identity" an sich wird dadurch natürlich nicht neu gesetzt.

Es könnte auch ein problem mit der Verknüpfung der 2 Eigenschaften sein $user.Nachname + $user.Domainname eventuell kommt dabei etwas heraus was die Function nicht als identity verwenden kann.

da du aber vorher in der Bedingung den samaccountname überprüfst nimm doch den als identity:

Set-ADUser -identity $kurz`

Grüße
Bitte warten ..
Mitglied: Bananenkoenig
23.10.2019, aktualisiert um 11:43 Uhr
Zitat von Bitboy:
Es könnte auch ein problem mit der Verknüpfung der 2 Eigenschaften sein $user.Nachname + $user.Domainname eventuell kommt dabei etwas heraus was die Function nicht als identity verwenden kann.
Set-ADUser -identity $kurz`

Das habe ich mir auch schon gedacht und es damit versucht, aber dann bekomme ich folgende Fehlermeldung:
01.
Set-ADUser : Unter "DC=Zero,DC=int" kann kein Objekt mit der ID "ZimmermannM" gefunden werden.
02.
In C:\temp\Test4.ps1:33 Zeichen:2
03.
+  Set-ADUser -identity $kurz`
04.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
05.
    + CategoryInfo          : ObjectNotFound: (ZimmermannM:ADUser) [Set-ADUser], ADIdentityNotFoundException
06.
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Microsoft.ActiveDirectory.Management.Commands.SetADUser
Gebe ich das manuell ein, wenn er dort stehen bleibt, wird auch der User erkannt und ich kann die Einträge nachpflegen.

Das Problem mit Set-ADUser -identity ($user.Nachname + $user.Domainname)` ist erst entstanden, nachdem ich die Umlaut Funktion eingebaut habe und versuche sie anzuwenden. Davor wurden dann einfach die bestehenden Einträge geändert. Aber mein Wissen ist nicht tief genug, um selber das Problem alleine zu umgehen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

AD-Felder für User mittels Powershell befüllen aus CSV-Datei

gelöst Frage von Alex94GBatch & Shell2 Kommentare

Hallo Admins, folgendes Szenario: Wir haben von der Personalabteilung eine CSV-Datei mit allen Usern bekommen, die ungefähr so aussieht: ...

Windows Server

Alle User im AD als CSV speichern

Frage von opc123Windows Server6 Kommentare

Hallo, wie kann ich alle User im AD in eine CSV speichern, aber ohne das die im AD gelöscht ...

Batch & Shell

PS Werte CSV-Datei in AD Attribut

gelöst Frage von lupoloBatch & Shell3 Kommentare

Hallo Leute, ich komm grad irgendwie nicht weiter. Wir müssten für jeden AD Benutzer ein AD-Attribut (scanPath) mit dem ...

Entwicklung

AD User anpassen mittels Powershell und Dateiquelle (CSV)

Frage von BastardOperatorfromHellEntwicklung13 Kommentare

Hallo Forum, nach langer Zeit hab ich mal wieder eine Frage, die mich zum verzweifeln bringt. Google und Co ...

Neue Wissensbeiträge
Humor (lol)
Das IoT wird schlimmer
Erfahrungsbericht von Henere vor 8 StundenHumor (lol)

Nun auch schon über den WSUS:

Sicherheit

Win10 1809 und höher erlauben nun das Sperren und Whitelisten von bestimmten Geräten

Tipp von DerWoWusste vor 18 StundenSicherheit1 Kommentar

Vor 1809 konnten nur Geräteklassen gesperrt werden, nun können endlich einzelne Device instance IDs gewhitelistet werden (oder andersherum: gesperrt ...

Windows 10

Hands-On: What is new in the Windows 10 November 2019 Update?

Information von DerWoWusste vor 1 TagWindows 10

Die wenigen (aber zum Teil interessanten) Neuheiten werden in diesem Video sehr schnell erklärt und vorgeführt.

Grafik

Gute Spiele aus der Ubuntu Repository: SuperTuxKart

Information von NetzwerkDude vor 1 TagGrafik1 Kommentar

Fall jemand die Firmenpolicy hat das man Linux Software nur aus dem default Repository installieren kann: Ich habe festgestellt ...

Heiß diskutierte Inhalte
Ubuntu
Ubuntu-Putty hilfe
Frage von Nickolas.GroheUbuntu38 Kommentare

Hallo Wie ändere ich einen ssh Port auf Linux Ubuntu? LG Nickolas

Netzwerke
VPN auf Firmennetzwerk (Festplatten, Computer) einrichten, aber wie?
Frage von 81083Netzwerke34 Kommentare

Hallo, es ist ein Bisschen frustrierend. Wir haben einen 2012 R2 Server, eine Fritzbox und etwa 10-12 PC die ...

Windows 7
Festplatte in einen anderen PC umziehen lassen
Frage von Ghost108Windows 728 Kommentare

Hallo zusammen, ich bekomme die nächsten Tage einen neuen PC (komplett andere Hardware als in meinem jetzigen) Was für ...

Windows Server
AD, Sysprep, Clone, SID . oh weh
Frage von heifumaWindows Server23 Kommentare

Moin, ich versuche es so kurz wie möglich zu halten: Ist-Zustand: - IT Dienstleister hat Monopol für die bei ...