четверг, 26 декабря 2019 г.

PowerShell: Настройка предпочитаемых языков, копирование параметров для новых аккаунтов и окна приветствия

Скрипт поможет автоматизировать настройку предпочитаемых языков, а также скопировать данные параметры для новых профилей, которые будут созданы позже, и окна приветствия Windows.


Для нашего примера используем "en-US" как предпочитаемый язык и вторичный "ru-RU":

#Setup User Language List
Set-WinUserLanguageList -Force 'en-US', 'ru-RU'
#Copy User Language List to Welcome screen and New user accounts
$DefaultUserHive = $env:SystemDrive + "\Users\Default\NTUSER.DAT"
reg load HKU\DefaultUserHive $DefaultUserHive
$MyProfileCurrentPath = "Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Keyboard Layout\Preload"
$UserProfiles = Get-ChildItem "Microsoft.PowerShell.Core\Registry::HKEY_USERS"
$MyProfileCurrentPathProperty = (Get-Item $MyProfileCurrentPath).Property
$RegKeyArray = @()
Foreach ($UserProfile in $UserProfiles) {$RegKeyArray += 'Microsoft.PowerShell.Core\Registry::' `
+ $UserProfile.Name  + '\Keyboard Layout\Preload'} 
Foreach ($RegKey in $RegKeyArray) {$MyProfileCurrentPathProperty | ForEach-Object -Process `
{Copy-ItemProperty -Path $MyProfileCurrentPath -Destination $RegKey -Name $_}}
$MyProfileCurrentPath = "Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Control Panel\International\User Profile"
$RegKeyArray = @()
Foreach ($UserProfile in $UserProfiles) {$RegKeyArray += 'Microsoft.PowerShell.Core\Registry::' + $UserProfile.Name `
+ '\Control Panel\International\User Profile'} 
Foreach ($RegKey in $RegKeyArray) {Copy-ItemProperty -Path $MyProfileCurrentPath -Destination $RegKey -Name Languages}
$UserProfile.Flush()
$UserProfile.Close()
$UserProfiles.Flush()
$UserProfiles.Close()
While (!(reg unload HKU\DefaultUserHive)){}

Запускать скрипт необходимо с повышенными привилегиями.

Комментариев нет:

Отправить комментарий