Aktivierung der Schattenkopien auf non-CSV clustered Volumes per Powershell in Windows Server 2008 R2

Das Ergebnis einer coolen Initiative eines unserer Kunden ist ein Skript für das Erstellen von Schattenkopien auf non-CSV clustered Volumes.

So konfiguriert man das in der GUI:

Was im Hintergrund passiert:

 

Und wie man das dann per Powershell konfigurieren kann:

-          Variabeln

$diskname = "VolumeName"
$VolumeWmi = gwmi Win32_Volume -Namespace root/cimv2 | ?{ $_.Label -eq $diskname }
$DeviceID = $VolumeWmi.DeviceID.ToUpper().Replace("\\?\VOLUME", "").Replace("\","")
$ResName = "ShadowCopyVolume" + $DeviceID

$ResParams = "\\?\Volume" + $DeviceID + "\\"

 

-          Anlegen der VSS Cluster Resource:

Add-ClusterResource –name $ResName –ResourceType "Volume Shadow Copy Service Task " –group "FileClusterGroup"

 

-          Setzen der private Properties der Cluster VSS Resource:

Get-ClusterResource $ResName | Set-ClusterParameter ApplicationName %systemroot%\system32\vssadmin.exe

Get-ClusterResource $ResName | Set-ClusterParameter ApplicationParams "Create Shadow /AutoRetry=15 /For=$ResParams"

 

-          Dependency setzen auf die entsprechende Cluster Disk:

Set-ClusterResourceDependency $ResName "[Cluster Disk X]"

 

-          VSS Resource starten:

Start-ClusterResource $ResName

 

Für das erstellen des Schedules per Powershell muss man noch die TriggerArray Eigenschaft setzen.

-          Volume Shadow Copy Service Task Private Properties 

Referenz:

-          das Erstellen der "Volume Shadow Copy Service Task" Ressourcen per cluster.exe ist nicht supported:

Checklist: Installing a Volume Shadow Copy Service Task resource  

Standalone Server

Das Aktivieren von Schattenkopien auf Volumes für stand-alone Server

$diskname = "VolumeName"
$VolumeWmi = gwmi Win32_Volume -Namespace root/cimv2 | ?{ $_.Label -eq $diskname }
$DeviceID = $VolumeWmi.DeviceID.ToUpper().Replace("\\?\VOLUME", "").Replace("\","")
$TaskName = "ShadowCopyVolume" + $DeviceID
$TaskFor = "\\?\Volume" + $DeviceID + "\\"
$Task = "%systemroot%\system32\vssadmin.exe Create Shadow /AutoRetry=15 /For=$TaskFor"
 
Write-Host -foreground green "Task" $TaskName "wird für" $diskname "eingerichtet."
schtasks /create /RU SYSTEM /SC DAILY /ST 03:00 /TN $TaskName /TR $Task /V1

 

Mehrere Details, Aktivitäten und erweiterte Scripts sind hier zu finden: Shadow Copy Schedule per Script 

Oni Sandru

Platforms Core Team