Netz-Weise Logo

Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.

Windows Freigaben auf einen neuen Pfad migrieren mit Powershell

Wenn Sie auf einem Dateiserver Ordner umziehen müssen, kann das Anpassen der Freigaben auf untergeordneten Ordnern sehr aufwändig werden, z.B. wenn es sich um eine große Menge von Home-Shares handelt. Einfacher als über die GUI geht es, wenn Sie die Registry-Schlüssel unter HKEY_LocalMachine\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares\ anpassen. Alternativ können einfach die folgende Powershell-Funktion verwenden, die einen gegebenen Pfad in dem Registry-Schlüssel durch einen neuen ersetzt. Da es sich um eine reine Musterersetzung handelt, können Sie beliebige Teilpfade ersetzen lassen.

function Replace-SharePath
{
<#
    .SYNOPSIS
    Replace the Filesystem-Path of a Share

    .Description
    Replace-Sharepath can change the Filesystem-Path of shares. This can be helpful if you need to move
    Files to a new Drive or have to move files to a subfolder and you have multiple Shares to touch. The
    Script will change the given String into the new string, so all shares under the given Path will be
    affected.
             
    .EXAMPLE
    To move Files from C:\Shares to D:\NewSharesFolder:
    Replace-SharePath -Path c:\Shares -NewPath D:\NewSharesFolder
#>
param(
    [ValidateScript({ if ( ! ( Test-Path -path $_ -PathType Container )) {Throw "Bitte den Quellpfad prüfen!"}; $true })]
    [Parameter(mandatory=$true)]
    # The Path to Change.
    $Path,

    [ValidateScript({ if ( ! ( Test-Path -path $_ -PathType Container )) {Throw "Bitte den Quellpfad prüfen!"}; $true })]
    [Parameter(mandatory=$true)]
    # The New Path
    $Newpath
)

    $path = $Path.Replace('\','\\')
    $Newpath = $Newpath.Replace('\','\')
    $ShareList = Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares\
    ForEach ( $Share in $ShareList.Property )
    {
        Get-ItemProperty -Path $ShareList.pspath -Name $share
        $newValue = ( Get-ItemProperty -Path $ShareList.pspath -Name $share ).$Share -replace "(^Path=)($path)","Path=$newpath"
        Set-ItemProperty -Path $ShareList.pspath -Name $Share -Value $Newvalue -PassThru
    }
}

Weiterlesen
  4952 Aufrufe

AD Domänenfunktionsebene und Forestfunktionsebene - Bedeutung und Best Practices

Die Active Directory Domänen-Funktionsebene (Domain Functional Level, DFL) und die Forest-Funktionsebene (Forest Functional Level) sind zwei Begriffe, die oft missverstanden werden. Ich werde hier versuchen, ein wenig Licht ins Dunkel zu bringen.
Die Funktionsebene einer Domäne bzw. eines Forest bestimmt, welche AD-Funktionen genutzt werden können. Mit jeder neuen Version von Windows wurden auch neue AD-Funktionalitäten implementiert, von denen einige durch eine Schemaerweiterung aktiviert werden können, während andere voraussetzen, dass alle Domänencontroller des AD sich auf dem gleichen oder einem höheren Betriebssystemstand befinden. Um sicherzustellen, dass alte und neue DCs miteinander kommunizieren können, muss das System sich auf den kleinsten gemeinsamen Nenner einigen. Daher werden neue Funktionen nicht automatisch freigeschaltet, sondern müssen nach dem Herunterstufen aller alten Domänencontroller manuell aktiviert werden. Dabei unterscheidet man zwischen der Funktionsebene einer einzelnen Domäne - um sie zu ändern, müssen alle Domänencontroller der Domäne auf dem gleichen minimalen Stand sein - und der Funktionsebene des Forest, für dessen Änderung alle Domänencontroller des Forest (also alle Domänen) den Versionsstand erreicht haben müssen, der aktiviert werden soll. Um die aktuellen Funktionsebenen abzufragen, öffnen Sie auf einem Computer, auf dem die AD-Verwaltungstools installiert sind, eine Powershell-Konsole und geben folgende Befehle ein:

(Get-ADDomain).DomainMode
(Get-ADForest).ForestMode

Um sich alle Domänencontroller Ihrer Domäne mit Betriebssystemversion ausgeben zu lassen, verwenden Sie

Get-ADDomainController -Filter * | Select-Object Hostname,Operatingsystem

Für alle Domänencontroller aller Domänen verwenden Sie

Weiterlesen
  30680 Aufrufe

Windows Datei- und Druckserver migrieren

Windows Server bringt eine Reihe von Migrationstools mit, die die Migration von Benutzern, Druckern und Dateien recht einfach machen Sie müssen lokale Benutzer, Gruppen, Drucker oder Dateien zwischen zwei Windows-Server migrieren? Kein Problem mit den Windows Server Migrationstools.

Szenario 1: Benutzer und Gruppen migrieren

Um Benutzer und Gruppen zu migrieren, verwenden Sie die Windows Migration Tools. Auf Windows Server 2008 R2 und 2012 (R2) installieren Sie diese über den Server-Manager oder über Powershell auf dem Quell- und auf dem Zielserver:

Install-WindowsFeature -Name Migration

Danach laden Sie in Powershell das Migrations Snap-In:

Add-PSSnapin Microsoft.Windows.ServerManager.Migration

Exportieren Sie nun zuerst auf dem Quellserver die Benutzer und Gruppen mit Hilfe des Cmdlets Export-SmigServerSettings. Über den Parameter User können Sie angeben, welche Benutzer exportiert werden sollen. Es stehen Ihnen die Optionen "All","Enabled" und "Disabled" zur Verfügung. Wenn Sie auch die lokalen Gruppen exportieren wollen, verwenden Sie den Parameter Group. Achten Sie aber darauf, dass Sie die Gruppen in einem Befehl mit den Usern exportieren, da Sie sonst ein weiteres Export-Verzeichnis benötigen. Das Export-Verzeichnis sollte sinnigerweise von beiden Servern aus erreichbar sein. Da der Export mit Kennwort erfolgt, müssen Sie die Daten mit einem Kennwort verschlüsseln.

Weiterlesen
  12953 Aufrufe