Anstatt die Einstellung remote zu konfigurieren, können Sie einfach eine geplante Aufgabe über Gruppenrichtlinien erstellen. Wie Sie bereits erwähnt haben, verwendet die während der normalen Methode erstellte Aufgabe eine Volume-ID. seine Aktion sieht ungefähr so aus:
vssadmin.exe Create Shadow /AutoRetry=15 /For=\\?\Volume{f9d9bfa1-f506-f24f-f54f-fe6ef47fd6f4}\
Die Herausforderung für Sie wäre natürlich, ein Gruppenrichtlinienobjekt zu erstellen, das für alle Computer funktioniert.
Ich schlage vor, dass Ihr Zeitplan ein kleines Powershell-Snippet ist, das die Volume-ID findet und denselben Befehl aufruft.
Ich gehe davon aus, dass Sie dies für das Systemlaufwerk tun möchten. In diesem Fall sollte Code wie dieser unter PowerShell 2.0+ funktionieren:
$volID = Get-WmiObject Win32_Volume | Where-Object { $_.DriveLetter -ieq $env:SYSTEMDRIVE } | Select-Object -ExpandProperty DeviceID
Start-Process 'vssadmin.exe' -ArgumentList "Create Shadow /AutoRetry=15 /For=$volID" -Wait
Dies wird hier als 2 Zeilen angezeigt, damit Sie leichter sehen können, was los ist. Wenn Sie jedoch beabsichtigen, Ihre Aufgabe ohne eine externe Skriptdatei aufzurufen (was die Sache komplizieren würde), müssen Sie alles in einer Zeile haben. Sie können die Zeilen durch ein Semikolon trennen. Sie können einfach die gesamte Zeile zum Abrufen der Volume-ID in die Zeichenfolge mit $()
usw. einbetten .
Sie können auch den Powershell- -EncodedCommand
Parameter verwenden, um mit Zitaten umzugehen. Auf diese Weise haben Sie ein gut lesbares mehrzeiliges Skript, mit dem Sie irgendwo auf einer Freigabe sitzen können. Sie codieren dieses Skript mit base64 und übergeben dann das gesamte Objekt an Powershell -EncodedCommand
.
Ich kann diese Optionen bei Bedarf erweitern, vorausgesetzt, dieser Code entspricht Ihren Anforderungen.