PowerShellAdmin 169 Geschrieben 13. April 2012 Melden Geschrieben 13. April 2012 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
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden