PowerShellAdmin 169 Geschrieben 13. April 2012 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.