Worauf man achten muss
Nicht jedes Verzeichnis unter C:\Users ist ein echtes Benutzerprofil. Standardprofile, oeffentliche Profile oder Servicekonten muessen je nach Ziel bewusst ausgeschlossen werden.
Deployment Snippet
Das ist ein klassischer Deployment-Fall in MECM oder PSADT: eine Datei soll im Kontext NT-AUTORITAET\SYSTEM auf dem Rechner laufen, aber fuer alle lokalen Benutzerprofile an den richtigen Ort verteilt werden.
Nicht jedes Verzeichnis unter C:\Users ist ein echtes Benutzerprofil. Standardprofile, oeffentliche Profile oder Servicekonten muessen je nach Ziel bewusst ausgeschlossen werden.
Voreinstellungen in AppData\Roaming, Vorlagen, Konfigurationsdateien oder kleine Hilfsdateien, die fuer mehrere bereits vorhandene Benutzerprofile bereitgestellt werden muessen.
$sourceFile = "$dirFiles\UserConfig\settings.json"
$profiles = Get-ChildItem 'C:\Users' -Directory | Where-Object {
$_.Name -notin @('Default', 'Default User', 'Public', 'All Users')
}
foreach ($profile in $profiles) {
$targetFolder = Join-Path $profile.FullName 'AppData\Roaming\Company\App'
$targetFile = Join-Path $targetFolder 'settings.json'
if (-not (Test-Path $targetFolder)) {
New-Item -Path $targetFolder -ItemType Directory -Force | Out-Null
}
Copy-Item -LiteralPath $sourceFile -Destination $targetFile -Force
Write-Log -Path $logFile -Component 'UserProfileCopy' -Type Info -Message "Datei kopiert nach $targetFile"
}
Typisch waere das im Post-Install-Bereich, nachdem die eigentliche Anwendung installiert wurde. So bleibt die Logik klar getrennt vom Setup-Aufruf.
Wenn das Paket als SYSTEM laeuft, ist dieses Muster oft einfacher als mehrere Benutzerinstallationen. Wichtig ist aber, vorhandene und zukuenftige Benutzerprofile fachlich zu unterscheiden.
Dieses Muster verteilt nur in bereits existierende Profile. Wenn auch neue Benutzer spaeter dieselbe Datei bekommen sollen, braucht es zusaetzlich ein Default-Profile-, Active Setup- oder First-Run-Konzept.
Gerade bei Mehrbenutzerprofilen ist Logging Pflicht, damit spaeter sichtbar bleibt, fuer welche Profile erfolgreich kopiert wurde und wo Berechtigungen oder Pfade Probleme machten.