Zum Inhalt springen

Central Store für Gruppenrichtlinien anlegen

In diesem Artikel habe ich kurz notiert, dass ich bisher zu bequem war die Anlage eines Central Stores für Gruppenrichtlinien mittels PowerShell umzusetzen und deshalb auf das Batch-Skript zurückgegriffen habe.
Daher habe ich die ruhigere Sommerzeit genutzt die Konvertierung zu PowerShell endlich zu realisieren.


<# Description: Erstellt an einem DC den Central Store für zentrale Gruppenrichtlinien Author: Thomas Steinberger Version: 0.1 Created: 09.08.2017 Last Modified: 09.08.2017 Bei Fertigstellung des Skripts alle Zeilen mit "Write-Host" auskommentieren oder loeschen. Ausnahme: Write-Host -Object "Der Inhalt von `$error ist: `n $error" im Catch-Block #>

$ErrorActionPreference = 'Continue'

try
{
$existenztestPD=Test-Path -Path "$env:LOGONSERVER\sysvol\$env:USERDNSDOMAIN\policies\PolicyDefinitions"
$existenztestDE=Test-Path -Path "$env:LOGONSERVER\sysvol\$env:USERDNSDOMAIN\policies\PolicyDefinitions\de-DE"
if ($existenztestPD -eq $false)
{
New-Item -Path "$env:LOGONSERVER\sysvol\$env:USERDNSDOMAIN\policies\" -Name 'PolicyDefinitions' -ItemType Directory
Get-ChildItem -Path $env:SystemRoot\PolicyDefinitions | where-object {$_.psiscontainer -eq $false} | Copy-Item -Destination "$env:LOGONSERVER\sysvol\$env:USERDNSDOMAIN\policies\PolicyDefinitions"
}
else
{
Get-ChildItem -Path $env:SystemRoot\PolicyDefinitions |where-object {$_.psiscontainer -eq $false} | Copy-Item -Destination "$env:LOGONSERVER\sysvol\$env:USERDNSDOMAIN\policies\PolicyDefinitions"
}
if ($existenztestDE -eq $false)
{
New-Item -Path "$env:LOGONSERVER\sysvol\$env:USERDNSDOMAIN\policies\PolicyDefinitions" -Name 'de-DE' -ItemType Directory
Get-ChildItem -Path $env:SystemRoot\PolicyDefinitions\de-DE | Copy-Item -Destination "$env:LOGONSERVER\sysvol\$env:USERDNSDOMAIN\policies\PolicyDefinitions\de-DE"
}
else
{
Get-ChildItem -Path $env:SystemRoot\PolicyDefinitions\de-DE | Copy-Item -Destination "$env:LOGONSERVER\sysvol\$env:USERDNSDOMAIN\policies\PolicyDefinitions\de-DE"
}
}
catch
{
Write-Warning -Message "Das Skript hat einen unerwarteten Fehler erzeugt. Check die Error-Variable fuer Details."
Write-Host -Object "Der Inhalt von `$error ist: `n $error"
}
finally
{
Write-Verbose "Bin mit dem Skript fertig ;-)"
}