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 ;-)"
}