Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Basisordner via PowerShell setzen

Frage Microsoft Windows Server

Mitglied: r00t-1337

r00t-1337 (Level 1) - Jetzt verbinden

04.02.2014, aktualisiert 06.02.2014, 5666 Aufrufe, 18 Kommentare, 3 Danke

Hallo Zusammen,

ich habe ein Problem mit dem erstellen des Basisordners unter Server 2008 r2.

Den Basisordner setze ich bei allen Benutzern mit dem Befehl:

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\$($_.Samaccountname)"}

Das ganze wird auch korrekt im AD-Konto angezeigt:

b7d4ed71328f7e49881337e390bf6f86 - Klicke auf das Bild, um es zu vergrößern

Jedoch wird der Ordner nicht unter \\Server\vol2\home\ mit dem vn.nn des Benutzers erstellt.

Gehe ich jetzt ins AD-Konto des Users rein, und klicke hier nochmal auf den Basisordner und verändere ein Zeichen und klicke auf übernehmen wird der Ordner unter \\Server\vol2\home\vn.nn angelegt ...

Jemand eine Idee ob es hier noch einen Befehl gibt damit der Ordner auch gleich angelegt wird mit Vollzugriff für den jeweiligen Benutzer?

Vielen Dank schonmal!
Mitglied: LennyLinux
04.02.2014 um 14:15 Uhr
Hallo r00t-1337,

der Befehl an sich funktioniert so. Ich habe in meiner Schatzkiste nachgesehen und einen Link aus dem technet von MS gefunden.

http://blogs.technet.com/b/heyscriptingguy/archive/2013/06/06/creating- ...

Mit diesen Informationen habe ich damals ein Tool programmiert, welches über ein WebGui Benutzer anlegen kann. Hier hat auch das mit dem Homelaufwerk gepasst.

Falls du noch Infos brauchst, immer melden.

Grüße
Lenny Linux
Bitte warten ..
Mitglied: colinardo
04.02.2014 um 14:21 Uhr
Hi,
wenn du anstatt den Usernamen in deinem Befehl aufzulösen, die Variable %username% im Homepfad verwendest, sollte der Ordner von Windows normalerweise automatisch angelegt werden.
http://blog.alekel.de/homeverzeichnis-und-profil-automatisch-anlegen/
"\\Server\vol2\home\%username%"}
Grüße Uwe
Bitte warten ..
Mitglied: r00t-1337
04.02.2014 um 14:43 Uhr
Hi und danke für die Antworten.

@colinardo - ich habe meinen Befehl mal so umgeändert:

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"}

Es steht dann zwar im jeweligen AD-Konto der Pfad so drinnen. \\Server\vol2\home\%username%
jedoch wird der Ordner immer noch nicht angelegt. Erst wenn ich ins Konto gehe, etwas verändere und auf OK klicke legt er Ihn entsprechend an.


@LennyLinux - geht das nicht auf direktem Wege mit einem zusätzlichen Parameter in PowerShell?



Besten Dank1
Bitte warten ..
Mitglied: colinardo
04.02.2014, aktualisiert um 14:45 Uhr
Zitat von r00t-1337:
Es steht dann zwar im jeweligen AD-Konto der Pfad so drinnen. \\Server\vol2\home\%username%
jedoch wird der Ordner immer noch nicht angelegt. Erst wenn ich ins Konto gehe, etwas verändere und auf OK klicke legt er Ihn entsprechend an.
Wird erst beim ersten Anmelden des Users an der Domäne erstellt ...
Bitte warten ..
Mitglied: LennyLinux
04.02.2014 um 14:55 Uhr
Habe mal gebastelt:

Die Variablen $UserName; $HomePath musst du nur entsprechend anpassten.

Bsp: $UserName = "testuse" $HomePath = "\\Server\vol2\home\

New-Item -Name $UserName -ItemType Directory -Path $HomePath | Out-Null
Set-ADUser $UserName -HomeDirectory "$HomePath\$UserName" -HomeDrive P:


getestet auf einem WindowsServer 2k8 r2 mit powershell 1.2
Bitte warten ..
Mitglied: LennyLinux
04.02.2014 um 14:58 Uhr
Was ich noch bemerkt habe:

Spitzelt da eine 10.* hinter der Verschleiherung hervor?

Ich kann dir nur empfehlen die entrpechenden FQDN einzutragen.

Grüße

Lenny
Bitte warten ..
Mitglied: r00t-1337
04.02.2014, aktualisiert um 15:03 Uhr
Hi, danke ...

Kann dir gerade nicht folgen, beim Anmelden in der Domäne mit dem Befehl:

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"}

klappt es nicht. Der Ordner wird nicht erstellt.

Was meinst du mit "Die Variablen $UserName; $HomePath musst du nur entpsrechen anpassen ... ? Wie würde denn das mit deinem Vorschlag dann in diesem Befehl lauten?:

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\$($_.Samaccountname)"}

oder in diesem:

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"}


Danke
Bitte warten ..
Mitglied: r00t-1337
04.02.2014 um 15:04 Uhr
Zitat von LennyLinux:

Was ich noch bemerkt habe:

Spitzelt da eine 10.* hinter der Verschleiherung hervor?

Ich kann dir nur empfehlen die entrpechenden FQDN einzutragen.

Grüße

Lenny

Jupp 10. folgt dann ...
Bitte warten ..
Mitglied: LennyLinux
04.02.2014, aktualisiert um 15:14 Uhr
Zitat von r00t-1337:
Was meinst du mit "Die Variablen $UserName; $HomePath musst du nur entpsrechen anpassen ... ? Wie würde denn das mit
deinem Vorschlag dann in diesem Befehl lauten?:

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet
14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST"
-ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\$($_.Samaccountname)"}

oder in diesem:

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet
14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST"
-ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"}

was dir fehlt ist der Befehl zum anlegen des Directorys im FileSystem. Deswegen ist der Ordner auch nicht da.

Uwe hat schon recht, dass die Erstellung des Ordners bei erstmaliger Anmeldung an der Domäne stattfindet. Wenn das nicht so sein soll, musst den Ordner mit dem Befehl

New-Item -Name $UserName -ItemType Directory -Path $HomePath | Out-Null

extra anlegen.

Ich hoffe ich konnte dir helfen.
Bitte warten ..
Mitglied: colinardo
04.02.2014, aktualisiert um 15:15 Uhr
Zitat von LennyLinux:
Habe mal gebastelt:
das würde ich lieber lassen, dann ist nämlich nicht der User der Besitzer des Ordners sondern der Account mit dem das Script ausgeführt wurde ... wenn schon dann bitte mit Set-ACL und Konsorten die Rechte richtig setzen.

wenn man es wie oben schon gesagt macht wird der Ordner automatisch beim ersten Anmelden des Users erstellt und die Rechte sitzen entsprechend korrekt !
Bitte warten ..
Mitglied: LennyLinux
04.02.2014 um 15:16 Uhr
Zitat von colinardo:

das würde ich lieber lassen, dann ist nämlich nicht der User der Besitzer des Ordners sondern der Account mit dem das
Script ausgeführt wurde ... wenn schon dann bitte mit Set-ACL und Konsorten die Rechte richtig setzen.

Hallo Uwe,

das ist natürlich klar. Die Berechtigungen müssen entsprechend mitgegeben werden.

Sollte kein Pfusch werden nur eine Hilfestellung.
Bitte warten ..
Mitglied: r00t-1337
04.02.2014 um 15:35 Uhr
Hi Zusammen,

teilweise, bin aber was PowerShell angeht ein echter Neuling weswegen ich mir teilweise schwer tue euch gleich zu folgen.

Wo würde SET-ACL denn im Skript angegeben werden?

"was dir fehlt ist der Befehl zum anlegen des Directorys im FileSystem. Deswegen ist der Ordner auch nicht da.

Uwe hat schon recht, dass die Erstellung des Ordners bei erstmaliger Anmeldung an der Domäne stattfindet. Wenn das nicht so sein soll, musst den Ordner mit dem Befehl

New-Item -Name $UserName -ItemType Directory -Path $HomePath | Out-Null

extra anlegen.

Ich hoffe ich konnte dir helfen."

-> Mit der Domänenanmeldung wird der Ordner bei mir nicht angelgt, was dann aber wahrscheinlich am falschen Befehl liegt nehme ich an?

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet
14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST"
-ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"}

Sry ...
Bitte warten ..
Mitglied: r00t-1337
04.02.2014 um 16:05 Uhr
Oder die "Deppen-Methode" machen, via PowerShell ändern mit:

Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" | foreach {Set-ADUser $_ -StreetAddress "Teststreet
14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST"
-ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%"}

und dann wenn die jeweilige OU umgestellt wird in jedes Konto rein gehen, ein Buchstaben bei Verbinden mit hinzufügen, diesen Buchstaben wieder löschen und das ganze mit OK bestätigen ...
Bitte warten ..
Mitglied: colinardo
LÖSUNG 04.02.2014, aktualisiert 06.02.2014
01.
$users = Get-ADUser -Filter * -SearchBase "OU=Test,DC=TEST,DC=LAN" 
02.
 
03.
foreach($user in $users){ 
04.
    Set-ADUser $user -StreetAddress "Teststreet 14" -City "Hamburg" -Department "Test" -PostalCode "52147" -company "TEST" -ProfilePath $null -ScriptPath $null -HomeDrive "P" -HomeDirectory "\\Server\vol2\home\%username%" 
05.
  
06.
    # Ordner anlegen 
07.
    $folder = new-item -Path "\\Server\vol2\home\$($user.Samaccountname)" -ItemType Dir -Force 
08.
 
09.
    # ACL des Ordners holen 
10.
    $acl = get-acl $folder.FullName 
11.
     
12.
    # Neue Access Rule erstellen und dem Ordner hinzufügen 
13.
    $objACE = New-Object System.Security.AccessControl.FileSystemAccessRule($user.UserPrincipalName,"FullControl","ContainerInherit,ObjectInherit","None","Allow") 
14.
    $acl.AddAccessRule($objACE) 
15.
 
16.
    # Besitzer des Ordners setzen 
17.
    $acl.SetOwner([System.Security.Principal.NTAccount]"$($user.UserPrincipalName)") 
18.
 
19.
    # neue ACL des Ordners speichern 
20.
    Set-Acl $folder.FullName -AclObject $acl 
21.
}
Bitte warten ..
Mitglied: r00t-1337
04.02.2014 um 16:34 Uhr
Danke dir!!!

*Niederknien*

Ich melde mich sobald ich es probiert habe.
Bitte warten ..
Mitglied: r00t-1337
05.02.2014 um 09:12 Uhr
@ colinardo - danke dir dein Skript funktioniert super!

Nur eine Sache bei der Windows-Anmeldung mit einem Test User ist der Ordner angelegt, die ACL korrekt gesetzt, der Pfad im AD-Konto zum Basisordner vorhanden - ABER das Laufwerk wird bei der Anmeldung nicht gemappt.

Hier vll. noch eine Idee?


Danke schonmal!
Bitte warten ..
Mitglied: colinardo
05.02.2014, aktualisiert um 09:28 Uhr
Ist der Serverpfad \\Server\vol2\home überhaupt freigegeben ?
Dort die Rechte korrekt gesetzt?
Laufen irgendwelche zusätzlichen Anmeldescripte die mit net use * /del vorher alle Mappings entfernen ?
Bitte warten ..
Mitglied: r00t-1337
05.02.2014 um 09:33 Uhr
Sorry ich rudere zurück.

Bei XP wird es nicht verbunden bei Win 7 schon.

Mhh ... seltsam ansonsten ein logonskript einbinden.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Exchange Server
Powershell Abwesenheitsnotiz für Gruppe setzen (3)

Frage von 124611 zum Thema Exchange Server ...

Batch & Shell
gelöst Powershell: Lokaler DTC Eigenschaften setzen? (2)

Frage von Andoreasu zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell: Netzwerk-Einstellung auf automatisch setzen (3)

Frage von Andoreasu zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...