User und Gruppen von Server 2008 auf Server 2008 R2 umziehen
Hallo,
ich habe die letzte Zeit öfters damit zu tun dass wir ältere Server (z.B. 2003, 2008) auf Server 2008 R2 umstellen.
Da die Server an keiner Domain hängen und auch kein Domaincontroller laufen haben, sind alle User und Gruppen lokal auf dem Server.
Jetzt meine Frage:
Gibt es eine Möglichkeit von einem alten Server die User und Gruppen mit Zuordnungen auszulesen (exportieren) und am neuen Server wieder zu importieren?
Derzeit mache ich das alles von Hand und das ist auf Dauer keine Lösung .
ich habe die letzte Zeit öfters damit zu tun dass wir ältere Server (z.B. 2003, 2008) auf Server 2008 R2 umstellen.
Da die Server an keiner Domain hängen und auch kein Domaincontroller laufen haben, sind alle User und Gruppen lokal auf dem Server.
Jetzt meine Frage:
Gibt es eine Möglichkeit von einem alten Server die User und Gruppen mit Zuordnungen auszulesen (exportieren) und am neuen Server wieder zu importieren?
Derzeit mache ich das alles von Hand und das ist auf Dauer keine Lösung .
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 272265
Url: https://administrator.de/forum/user-und-gruppen-von-server-2008-auf-server-2008-r2-umziehen-272265.html
Ausgedruckt am: 22.12.2024 um 13:12 Uhr
4 Kommentare
Neuester Kommentar
Hi,
schau mal hier. Da werden unter "Migrieren lokaler Benutzer und Gruppen" ein paar Powershell Kommandos genannt.
E.
schau mal hier. Da werden unter "Migrieren lokaler Benutzer und Gruppen" ein paar Powershell Kommandos genannt.
E.
Moin zusammen,
das könnte dann mit Powershell in zwei Funktionen aufgeteilt etwa so aussehen:
Für den Export der Gruppenmitgliedschaften nutzt man dann die Funktion:
und den Import in das neue System:
Man sollte natürlich die Sonderkonten in der CSV noch bereinigen.
Das Script legt die Gruppen und User von sich aus an.
Fehlermeldungen im Script das Gruppen oder User schon existieren kann man ignorieren (ja ich gebs zu da war ich faul ).
Für den Fall das du einen Server 2003 hast den du umziehen musst, welcher noch kein Powershell von Haus aus installiert hat, kannst du für den Export der Mitgliedschaften folgendes VBS-Script nutzen das dir ebenfalls eine CSV-Datei erstellt, die du dann wieder für den Import mit Powershell nutzen kannst:
Benutzung wie immer auf eigene Gefahr und Leben
Grüße Uwe
das könnte dann mit Powershell in zwei Funktionen aufgeteilt etwa so aussehen:
function Export-LocalGroupMembers([string]$csvfile){
$groupmembers = @()
gwmi Win32_GroupUser | %{
$groupmembers += New-Object PSObject -Property @{
"Group"=[regex]::match($_.GroupComponent,'Name="(.*)"').Groups[1].Value
"Member"=[regex]::match($_.PartComponent,'Name="(.*)"').Groups[1].Value
"MemberType"=if($_.PartComponent -match 'Win32_Group'){"Group"}else{"User"}
}
}
$groupmembers |select Group,Member,MemberType | sort Group | export-csv $csvfile -Delimiter ";" -NoType -Encoding UTF8
}
function Import-LocalGroupMembers([string]$csvfile){
$csv = Import-CSV $csvfile -Delimiter ";" -Encoding UTF8
# create users
Write-Host "Creating Users..." -ForegroundColor Green
$csv | ?{$_.MemberType -eq "User"} | select -Expand Member -Unique | %{
net user $_ /add
}
# create groups
Write-Host "Creating Groups..." -ForegroundColor Green
$csv.Group | select -Unique | %{
net localgroup $_ /add
}
# process membership
Write-Host "Adding Members to Groups ..." -ForegroundColor Green
$csv | %{
net localgroup $_.Group $_.Member /add
}
}
Export-LocalGroupMembers 'C:\membership.csv'
Import-LocalGroupMembers 'C:\membership.csv'
Das Script legt die Gruppen und User von sich aus an.
Fehlermeldungen im Script das Gruppen oder User schon existieren kann man ignorieren (ja ich gebs zu da war ich faul ).
Für den Fall das du einen Server 2003 hast den du umziehen musst, welcher noch kein Powershell von Haus aus installiert hat, kannst du für den Export der Mitgliedschaften folgendes VBS-Script nutzen das dir ebenfalls eine CSV-Datei erstellt, die du dann wieder für den Import mit Powershell nutzen kannst:
On Error Resume Next
Set fso = CreateObject("Scripting.Filesystemobject")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_GroupUser",,48)
Set f = fso.OpenTextFile("users.csv",2,True)
f.WriteLine "Group;Member;MemberType"
For Each objItem in colItems
strGroup = Trim(Split(Split(objItem.GroupComponent,",",2,1)(1),"""",-1,1)(1))
strUser = Trim(Split(Split(objItem.PartComponent,",",2,1)(1),"""",-1,1)(1))
If InStr(1,objItem.PartComponent,"Win32_Group",1) > 0 Then
strMemberType = "Group"
Else
strMemberType = "User"
End If
f.WriteLine strGroup & ";" & strUser & ";" & strMemberType
Next
f.Close
MsgBox "Finished Export",vbInformation
Grüße Uwe