Jump to content

User Homedrive Serverumzug - Powershell Skript


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hi,

ich habe bei uns von einem alten Server, die Homedrives umgezogen.

 

Die Freigabe habe ich wie folgt umgezogen:

Neuen Server Home Ordner angelegt und als Home$ freigegeben - Berechtigungen vom Home Ornder der Ursprungsservers übernommen - nicht weiter nach unten vererbt und dann per XCOPY alle Daten mit den NTFS Berechtigungen verschoben:

 

xcopy /k/r/e/i/s/c/h/o

 

Per PowerShell habe ich die HomedriveAttribute ausgelesen und den Servernamen durch den neuen ersetzt.

 

=> Fertig.

(Ja ich weiß man kann das auch sicher über Pipes lösen, da ich das aber übersichtlich wollte in ne Foreach gepackt, ist nur ein kleiner Rohling der zweckmäßig ist ).

 

#Import AD-Extensiosn
import-module activedirectory
#Mitarbeiter OU/CN
$userpath="cn=users" #Pfad zum Benutzer (cn=users oder ou=Mitarbeiter - Abhängig ob Benutzer im Container oder OU
#Objekt beinhaltet alle AD Windows Gruppen
$domain=([ADSI]"LDAP://rootDSE").defaultNamingContext
$users=Get-aduser -Filter {ObjectClass -eq "user"} -Searchbase "$userpath,$domain" -properties *

foreach($object in $users)
{
#aktualisiert den Profilpath zum neuen Server
$profilpath=$object.homedirectory -replace "dsrv31","psrv18"
$profilpath
#Setzt das  Homelaufwerk
set-ADUser $object.sAMAccountName –homedrive "w:"
#Setzt den Profilpath auf den Benutzer
set-ADUser $object.sAMAccountName –homedirectory $profilpath
}

 

vielleicht hilfts ja einen weiter - Grüße Admin.

 

PS:

Hier ist noch ein einfacher Skript, den ich auf die schnelle gemacht hatte.

Er läd aus dem SVN eine aktuelle Version einer Datei und verteilt diese in einen fest definierten Ordner zu jeden Benutzerordner - bei Bedarf legt er den Ordner automatisch an.

Dazu ist noch eine einfache Fehlerbearbeitung eingebaut und eine Emailbenachrichtigung.

 

#Version 1.1
#Date 02.04.2012
# Softwareverteilung
cls
#Fehlervariable wird auf $null gesetzt
#$error[0] = $null
#Varbiablen werden definiert
#Emailversandt
$email_versender="softwareverteilung@domain.biz"
$email_empfaenger="me@domain.biz"
$email_smtpserver="10.1.2.15
#Emailfunktion
function sendmail
{
if($error[0] -ne $null)
   {
       $email_titel="Beispiel Verteilung Fehler"
       #Fehlerbeschreibung wird übergeben
       $email_inhalt=$error_message
   }
   else
   {
       $email_titel="Beispiel Verteilung erfolgreich"
       #Fehlerbeschreibung wird übergeben
       $email_inhalt="Das Beispiels wurde erfolgreich verteilt"
   }    
#setzt die Kodierung der eMail
$email_encoding  = New-Object System.Text.utf8encoding

#eMail wird versand
send-mailmessage -From $email_versender -To $email_empfaenger -Subject $email_titel -Body $email_inhalt -Smtpserver $email_smtpserver -BodyAsHtml -Encoding $email_encoding
}
#Läd die aktuelle Version der Frontenddaten herunter
& "C:\Program Files\TortoiseSVN\bin\svn.exe" up "E:\SVN\Trunk\Projects\beispiel.mdb"
& "C:\Program Files\TortoiseSVN\bin\svn.exe" up "E:\SVN\Trunk\Projects\beispiel.xls"
#Homefolder wird geladen
$homelaufwerk = Get-ChildItem "\\psrv18\home$"
foreach( $benutzer in $homelaufwerk )
{
   #Überprüft ob der Ordner \Programme\Beispiel vorhanden ist
   if (!(Test-Path -path ($benutzer.FullName+"\Programme\Beispiel").tostring()))
    {
       #erstellt die neuen Ordner, falls nicht vorhanden
       New-Item ($benutzer.FullName+"\Programme\Beispiel").tostring() -type directory      
    }
   #überschreibt die alten Versionen
   copy-Item E:\SVN\Trunk\Projects\beispiel.mdb ($benutzer.FullName+"\Programme\Beispiel").tostring()
   copy-Item E:\SVN\Trunk\Projects\beispiel.xls ($benutzer.FullName+"\Programme\Beispiel").tostring()      
}
if($error[0] -ne $null)
{
   #schreibt die Fehlermessage
   $error_message=$Error[0]
   #ruft Mailfuntkion auf
   sendmail 
   echo 'error'
   #beendet den Skript
   exit
}
sendmail 

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...