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

gelöst Username in Powershell Script für Änderung AD Nutzer

Mitglied: Hendrik2586

Hendrik2586 (Level 2) - Jetzt verbinden

05.12.2019 um 16:38 Uhr, 331 Aufrufe, 12 Kommentare

Guten Abend liebe Kolleginnen und Kollegen!


Fangen wir mal direkt an mit den Infos!


Windows Server 2016 + Windows 10 Clients!

Ich möchte gerne per PS Skript einen neuen Homeordner für die User angeben. Soweit so gut, nur kann ich die Variable für den Username ( Ordneranme) nicht mitgeben. Sitze seit Stunden über dem Problem.

$userbase = Get-ADUser -Filter * -SearchBase “OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local"

foreach($user in $userbase){
$path = “\\DC1\Usershares\$env:username” ( %Username% = wenn man es händisch eintragen würde)
$homedriveLetter = “H:”
Set-ADUser -Identity $user -HomeDirectory $path -HomeDrive $homedriveLetter
}



Vielleicht sehen die " Scripter" unter euch schon was ich vor habe.


Bin für jede Hilfe dankbar
Mitglied: 141965
05.12.2019, aktualisiert um 16:49 Uhr
$env:username
Das ist nur der Username des aktuell angemeldeten Users, bzw der der das Skript ausführt.

Den SamAccountName des jeweiligen Users musst du aus dem $user Objekt der Foreach-Schleife ableiten
$path = "\\DC1\Usershares\$($user.SamAccountName)"
Bitte warten ..
Mitglied: erikro
LÖSUNG 05.12.2019 um 16:48 Uhr
Moin,

Zitat von Hendrik2586:
>
 //$userbase = Get-ADUser -Filter * -SearchBase “OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local"
> 
> foreach($user in $userbase){
> $path = “\\DC1\Usershares\$env:username”        ( %Username% = wenn man es händisch eintragen würde)
> $homedriveLetter = “H:”
> Set-ADUser -Identity $user -HomeDirectory $path -HomeDrive $homedriveLetter
> }//
Bitte bei Code die Tags für den Code drumrum schreiben oder links auf </> klicken.

Nun zum Problem:

In $env:username steht der Username des Users, der das Skript ausführt. Das rennt spätestens beim zweiten Schleifendurchlauf gegen die Wand, weil es das Verzeichnis dann ja schon gibt. Und der User, bei dem das klappt, hat dann als Namen seines Homedirs den des Admins, der das gemacht hat. Deshalb so:

$path = \\dc1\usershares\$($user.samaccountname)
hth

Erik
Bitte warten ..
Mitglied: Hendrik2586
05.12.2019 um 16:49 Uhr
Zitat von 141965:

$env:username
Das ist nur der Username des aktuell angemeldeten Users.
Den SamAccoutnName musst du aus dem $user Objekt der Foreach-Schleife ableiten
> $path = "\\DC1\Usershares\$($user.SamAccountName)"
> 

Oh man bin ich doof. X-/

Das $env nicht so wirklich klappt ist mir schon augefallen.
Bitte warten ..
Mitglied: Hendrik2586
05.12.2019 um 16:52 Uhr
Zitat von Hendrik2586:

Zitat von 141965:

$env:username
Das ist nur der Username des aktuell angemeldeten Users.
Den SamAccoutnName musst du aus dem $user Objekt der Foreach-Schleife ableiten
>> $path = "\\DC1\Usershares\$($user.SamAccountName)"
>> 

Oh man bin ich doof. X-/

Das $env nicht so wirklich klappt ist mir schon augefallen.



In Richtung SamAccountName war ich auch schon weil das ja die einzige Variable ist die dort funktionieren würde. Ich wusste nur nicht wie ich die variabel dort einbinden kann. Oh man eh! X-D
Bitte warten ..
Mitglied: 141965
05.12.2019, aktualisiert um 17:03 Uhr
Zitat von Hendrik2586:
In Richtung SamAccountName war ich auch schon weil das ja die einzige Variable ist die dort funktionieren würde. Ich wusste nur nicht wie ich die variabel dort einbinden kann. Oh man eh! X-D

Einfach mal richtig nachschauen dann siehst du auch alles was die User noch so zu bieten haben ...
Get-ADUser -Filter * -SearchBase "OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local" -Properties * | fl *
Bitte warten ..
Mitglied: 0x32f1
05.12.2019 um 19:20 Uhr
Zitat von Hendrik2586:
$userbase = Get-ADUser -Filter * -SearchBase “OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local"

foreach($user in $userbase){
$path = “\\DC1\Usershares\$env:username” ( %Username% = wenn man es händisch eintragen würde)
$homedriveLetter = “H:”
Set-ADUser -Identity $user -HomeDirectory $path -HomeDrive $homedriveLetter
}


Na, wenn wir schon dabei sind: Kein Grund, $homedriveLetter bei jedem Durchlauf mit dem selben Wert zu überschreiben, oder?

$userbase = Get-ADUser -Filter * -SearchBase “OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local"
$homedriveLetter = “H:”

foreach ($user in $userbase) {
  $path = \\dc1\usershares\$($user.samaccountname)
  Set-ADUser -Identity $user -HomeDirectory $path -HomeDrive $homedriveLetter
}
Vielleicht möchtest du im Zuge der Ausführung auch gleich die korrekte ACL auf das Homedir setzen, sodass nur der Benutzer selbst das Verzeichnis lesen (und schreiben) kann?
Bitte warten ..
Mitglied: Hendrik2586
06.12.2019 um 07:58 Uhr
Zitat von 0x32f1:

Zitat von Hendrik2586:
$userbase = Get-ADUser -Filter * -SearchBase “OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local"

foreach($user in $userbase){
$path = “\\DC1\Usershares\$env:username” ( %Username% = wenn man es händisch eintragen würde)
$homedriveLetter = “H:”
Set-ADUser -Identity $user -HomeDirectory $path -HomeDrive $homedriveLetter
}


Na, wenn wir schon dabei sind: Kein Grund, $homedriveLetter bei jedem Durchlauf mit dem selben Wert zu überschreiben, oder?

$userbase = Get-ADUser -Filter * -SearchBase “OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local"
> $homedriveLetter = “H:”
> 
> foreach ($user in $userbase) {
>   $path = \\dc1\usershares\$($user.samaccountname)
>   Set-ADUser -Identity $user -HomeDirectory $path -HomeDrive $homedriveLetter
> }
Vielleicht möchtest du im Zuge der Ausführung auch gleich die korrekte ACL auf das Homedir setzen, sodass nur der Benutzer selbst das Verzeichnis lesen (und schreiben) kann?


Der Code dazu wäre sicher nicht schlecht, geht aber über meine Erfahrungen und Kenntnisse mit PS weit hinaus. Das würde ich dann doch über den Windows Server Manager machen.
Bitte warten ..
Mitglied: Hendrik2586
06.12.2019 um 08:03 Uhr
Zitat von Hendrik2586:

Zitat von 0x32f1:

Zitat von Hendrik2586:
$userbase = Get-ADUser -Filter * -SearchBase “OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local"

foreach($user in $userbase){
$path = “\\DC1\Usershares\$env:username” ( %Username% = wenn man es händisch eintragen würde)
$homedriveLetter = “H:”
Set-ADUser -Identity $user -HomeDirectory $path -HomeDrive $homedriveLetter
}


Na, wenn wir schon dabei sind: Kein Grund, $homedriveLetter bei jedem Durchlauf mit dem selben Wert zu überschreiben, oder?

$userbase = Get-ADUser -Filter * -SearchBase “OU=Test,OU=Users,OU=MyBusiness,DC=intern,DC=bbb,DC=local"
>> $homedriveLetter = “H:”
>> 
>> foreach ($user in $userbase) {
>>   $path = \\dc1\usershares\$($user.samaccountname)
>>   Set-ADUser -Identity $user -HomeDirectory $path -HomeDrive $homedriveLetter
>> }
Vielleicht möchtest du im Zuge der Ausführung auch gleich die korrekte ACL auf das Homedir setzen, sodass nur der Benutzer selbst das Verzeichnis lesen (und schreiben) kann?


Der Code dazu wäre sicher nicht schlecht, geht aber über meine Erfahrungen und Kenntnisse mit PS weit hinaus. Das würde ich dann doch über den Windows Server Manager machen.




Was ich nun vermisse ist etwas das ich wahrscheinlich falsch verstanden habe. Nun sehe ich wenn ich ein Comman Fenster öffne oder PS und set eingebe, das der Homepath und Letter angepasst wurden. Jedoch sehe ich das er wenn ich das command Fenster öffne auf C zugreift und nicht auf H. Auch sehe ich kein gemapptes Laufwerk H auf dem die User dann ihre Daten sehen.

Das wurde im Vorfeld mal per Skript gemacht, das möchte ich aber ablösen.
Bitte warten ..
Mitglied: erikro
06.12.2019 um 08:35 Uhr
Moin,

Zitat von Hendrik2586:
Vielleicht möchtest du im Zuge der Ausführung auch gleich die korrekte ACL auf das Homedir setzen, sodass nur der Benutzer selbst das Verzeichnis lesen (und schreiben) kann?


Der Code dazu wäre sicher nicht schlecht, geht aber über meine Erfahrungen und Kenntnisse mit PS weit hinaus. Das würde ich dann doch über den Windows Server Manager machen.

Guckst Du hier: https://administrator.de/forum/powershell-script-acl-entfernen-setzen-30 ...

hth

Erik
Bitte warten ..
Mitglied: erikro
06.12.2019 um 08:41 Uhr
Moin,

Zitat von Hendrik2586:
Was ich nun vermisse ist etwas das ich wahrscheinlich falsch verstanden habe. Nun sehe ich wenn ich ein Comman Fenster öffne oder PS und set eingebe, das der Homepath und Letter angepasst wurden.

Dann hat das also geklappt.

Jedoch sehe ich das er wenn ich das command Fenster öffne auf C zugreift

Das ist so.

und nicht auf H. Auch sehe ich kein gemapptes Laufwerk H auf dem die User dann ihre Daten sehen.

Hast Du denn das LW H: gemappt? Nur weil Du es dem User in die Umgebungsvariablen schreibst, mappt der Client noch nicht das LW. Das musst Du schon auch machen.

hth

Erik
Bitte warten ..
Mitglied: 0x32f1
LÖSUNG 06.12.2019, aktualisiert um 09:04 Uhr
Zitat von erikro:
Hast Du denn das LW H: gemappt? Nur weil Du es dem User in die Umgebungsvariablen schreibst, mappt der Client noch nicht das LW. Das musst Du schon auch machen.

Am besten per GPO für alle Nutzer ausrollen:

User Configuration -> Preferences -> Windows Settings -> Drive Maps
Action: Update
Location: \\dc1\usershares\%USERNAME%
Label as: %USERNAME% / oder Label as: Home Drive
Use: H

Fertig.
Bitte warten ..
Mitglied: Hendrik2586
06.12.2019 um 09:37 Uhr
Zitat von 0x32f1:

Zitat von erikro:
Hast Du denn das LW H: gemappt? Nur weil Du es dem User in die Umgebungsvariablen schreibst, mappt der Client noch nicht das LW. Das musst Du schon auch machen.

Am besten per GPO für alle Nutzer ausrollen:

User Configuration -> Preferences -> Windows Settings -> Drive Maps
Action: Update
Location: \\dc1\usershares\%USERNAME%
Label as: %USERNAME% / oder Label as: Home Drive
Use: H

Fertig.


Genau so hab ich es vor 30 MInuten eingerichtet! Danke für die Bestätigung.
Bitte warten ..
Ähnliche Inhalte
Windows Server
AD Powershell
gelöst Frage von Andreas-scaWindows Server3 Kommentare

Hallo Forum, ich bin leider in Sachen Powershell ein absoluter newbie. ich habe folgendes vor. Bei jedem User im ...

Batch & Shell

Powershell Script zum verschachteln von AD Gruppen Domain Übergreifend

gelöst Frage von Lukas4580Batch & Shell1 Kommentar

Hallo zusammen, ich versuche AD gruppen domain übergreifen zu verschachteln. Bisher hab ich raus gefunden das ich das mit ...

Batch & Shell

Script in Powershell

gelöst Frage von EverestBatch & Shell27 Kommentare

Hallo PS-Scriptler, hat jemand von euch ein Script, der bestimmte User (z.B. administrator) in der Domain ausließt, welcher angibt ...

Windows Server

PowerShell script Hilfestellung

Frage von ollip2016Windows Server2 Kommentare

Guten Tag Administrator-User, ich bin auf der Suche nach Hilfestellung für eine Powershell Skript, hier mal kurz eine Beschreibung, ...

Neue Wissensbeiträge
Sicherheit
0-day Schwachstelle im Internet Explorer
Information von kgborn vor 3 TagenSicherheit1 Kommentar

In Microsofts Internet Explorer gibt es eine 0-day Schwachstelle in der Scripting Engine, die faktisch alle Browser- und Windows-Versionen ...

Internet

Internet-Speedtest Automatisieren via Befehlszeile, cmd, Bash (Windows, Linux, FreeBSD, Mac)

Tipp von anteNope vor 4 TagenInternet6 Kommentare

Also das hier ist irgendwie an mir vorbeigegangen. Einfacher geht es schlicht nicht mehr. Mit "-s 28624 wähle ich ...

Administrator.de Feedback

Entwicklertagebuch: Codeblöcke auf unseren Seiten

Information von admtech vor 4 TagenAdministrator.de Feedback8 Kommentare

Hallo Administrator User, Unsere Codeblöcke werden ab sofort anders dargestellt. Die Codeblöcke können nun direkt per Copy&Paste kopiert werden. ...

Humor (lol)
Internet - auch 2020 noch Neuland ?
Erfahrungsbericht von Henere vor 5 TagenHumor (lol)6 Kommentare

Heute eine Mail der Schule meiner Tochter bekommen. Blabla Umweltschutz bla bla siehe Anhang. Dumm nur: Da hab ich ...

Heiß diskutierte Inhalte
Hardware
Was ist der beste Rechner für CAD und Statische Berechnungen
Frage von Halle20Hardware39 Kommentare

Guten Morgen Zusammen, Ich stehe vor der Aufgabe für unsere Firma neue Rechner für die Zeichner und Statiker anzuschaffen ...

Visual Studio
VB.NET - XML Daten lesen und in DataGrid schreiben
Frage von ComX123Visual Studio35 Kommentare

Hallo zusammen Bin neu hier und hab da ne kleine Frage, da ich nicht weiter komme. Habe eine XML ...

Batch & Shell
Mit Hilfe von Batch numerisch sortieren
gelöst Frage von Booster123Batch & Shell11 Kommentare

Guten Tag liebe Community, ich habe leider ein Problem mit meiner Batch Datei. Habe es jetzt geschafft das ich ...

Windows Server
Computerobjekte in AD auf Gerätetyp filtern
Frage von SchroediWindows Server11 Kommentare

Hallo zusammen, gibt es eine Möglichkeit in der AD die Computerobjekte auf Gerätetyp, also Notebook / Desktop-PC in einer ...