Benutzer-Werkzeuge

Webseiten-Werkzeuge


activedirectory:homepfadeangleichen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
activedirectory:homepfadeangleichen [2015/03/23 09:43] – angelegt ronnyactivedirectory:homepfadeangleichen [2016/04/02 00:48] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Home-Pfade angleichen ====== ====== Home-Pfade angleichen ======
 +
 +===== Ausgangssituation =====
 +Die Home-Verzeichnisse der drei Benutzer wurden bisher in drei Varianten in der AD angelegt:
 +
 +  - \\Servername\Freigabename1\Verzeichnisname
 +  - \\Servername\Freigabename2\Verzeichnisname
 +  - \\Servername\Verzeichnisname$
 +
 +Da die Homeverzeichnisse auf ein neues DFS mit dem Pfad "\\Domäne\Userdata\Verzeichnisname" migriert werden sollen, müssen alle Pfade gleichermaßen angepasst werden.
 +
 +===== Script =====
  
 <code Powershell|Script> <code Powershell|Script>
-$users get-aduser -filter {homeDirectory -like "*ERZ-FS*"} -properties homeDirectory +#Lege Alle Benutzer mit ihren derzeitigen Pfaden in ein Array $Users ab: 
-$RemoteShares = Get-WMIObject win32_share -ComputerName "erz-fs+$Users Get-ADUser -Filter {homeDirectory -like "*Servername*"} -Properties homeDirectory 
-foreach ($user in $users)+ 
 +#Rufe alle Freigabenamen auf dem Server ab 
 +$RemoteShares = Get-WMIObject win32_share -ComputerName "Servername
 + 
 +ForEach ($User in $Users)
 { {
-    $path = $user.homeDirectory.Split('\'+    #Zerteile de Freigabepfad des Benutzers am \ und lege die Einzelergebnisse in ein Array $Path 
-    $itemcount = $path.count +    #Bei dem Freigabepfad '\\Servername\Freigabe1\Verzeichnisname' sieht das Ergebnis so aus: 
-    $itemcount -= 1; +    #$Path[0] = "" 
-    $share = $path[3] +    #$Path[1] = "" 
-    if ($share -eq "homes$" -or $share -eq "user-daten")+    #$Path[2] = "Servername" 
 +    #$Path[3] = "Freigabe1" 
 +    #$Path[4] = "Verzeichnisname" 
 +    $Path = $User.homeDirectory.Split('\'
 +     
 +    #Speichere die Anzahl der Elemente von $Path in $ItemCount und reduzieren $Itemcount um 1 
 +    $ItemCount = $Path.Count 
 +    $ItemCount -= 1; 
 +     
 +    #Besorge die den Freigabenamen und lege ihn in $Share ab     
 +    $Share = $path[3] 
 +     
 +    #Wenn $Share = "Freigabe1" oder gleich "Freigabe2" ist, fahre mit TRUE fort: 
 +    if ($Share -eq "Freigabe1" -or $Share -eq "Freigabe2")
     {     {
-        $newHomeDirectoryPath "\\evag.evg.int\UserData\Home\" + $path[$itemcount]+        #Setze $newHomeDirectoryPath auf den neuen Pfad in "\\Domäne\Userdata\" 
 +        $newHomeDirectoryPath = "\\Domäne\Userdata\" + $Path[$ItemCount]
     } else     } else
     {     {
 +        #Der Else-Fall tritt nur dann auf, wenn der User bisher über eine versteckte Freigabe angesprochen wurde.
 +        #In diesem Fall muss die Freigabe aus den vorhandenen Freigaben rausgesucht werden, damit wir über diesen
 +        #Umweg an den Verzeichnisnamen kommen. Wird keine passende Freigabe gesucht, wird ein leerer String zurück-
 +        #gegeben, so dass bei einem folgenden Set-ADUser der ungültige Home-Pfad gelöscht würde:
 +        
 +        #Lege $newHomeDirectoryPath auf LEER:
         $newHomeDirectoryPath = ""         $newHomeDirectoryPath = ""
 +        
 +        #Durchsuche alle Freigabeverzeichnisse von "Servername" nach dem im Homepfad angegebenen
         $Share = $RemoteShares | Where-Object {$_.Name -eq $path[3]}         $Share = $RemoteShares | Where-Object {$_.Name -eq $path[3]}
 +        
 +        #Wenn wirklich ein Share gefunden wurde, fahre mit TRUE fort:
         if ($Share -ne $NULL)         if ($Share -ne $NULL)
         {         {
-            $path = $Share.Path.Split('\'+            $Path = $Share.Path.Split('\'
-            $itemcount = $path.count +            $ItemCount = $Path.Count 
-            $itemcount -= 1 +            $ItemCount -= 1 
-            $newHomeDirectoryPath = "\\evag.evg.int\UserData\Home\" + $path[$itemcount]+            $newHomeDirectoryPath = "\\Domäne\Userdata\" + $Path[$ItemCount]
         }         }
     }     }
-    $newHomeDirectoryPath+    #Setzt den neu definierten Pfad als Homedirectory fest. 
 +    Set-ADUser -Identity $User -HomeDirectory $newHomeDirectoryPath
 } }
 </code> </code>
  
 +{{tag>[AD Powershell]}}
activedirectory/homepfadeangleichen.1427100203.txt.gz · Zuletzt geändert: 2016/04/02 00:37 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki