Я пытаюсь изменить изображение учетной записи пользователя без использования графического интерфейса. Если я установлю для владельца текущего пользователя (администратора) и установлю для «Все» права доступа «FullControl» с графическим интерфейсом, вторая часть кода, где я устанавливаю значки, будет работать нормально. Первая часть, в которой я пытаюсь изменить правила раздела реестра для «Все», выдает ошибку «Set-Acl: запрошенный доступ к реестру запрещен».
Я пытался использовать openSubKey (), но так и не нашел решения.
#French Accessible
$UserAFR = New-Object System.Security.Principal.NTAccount("FrançaisAccessible")
$ADuserAFR_sid = $UserAFR.Translate([System.Security.Principal.SecurityIdentifier]).Value
$reg_base_afr = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\$ADuserAFR_sid"
$curUser = New-Object System.Security.Principal.NTAccount($env:UserDomain, $env:UserName)
$acl = Get-Acl HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\$ADuserAFR_sid
$acl.SetOwner($curUser)
$acl.SetAccessRuleProtection($False, $False)
$person = [System.Security.Principal.NTAccount]"Everyone"
$access = [System.Security.AccessControl.RegistryRights]"FullControl"
$inheritance = [System.Security.AccessControl.InheritanceFlags]"ObjectInherit, ContainerInherit"
$propagation = [System.Security.AccessControl.PropagationFlags]"None"
$type = [System.Security.AccessControl.AccessControlType]"Allow"
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($person,$access,$inheritance,$propagation,$type)
$acl.ResetAccessRule($rule)
#Gets Error Message Saying Set-Acl: requested registry access is not allowed
Set-Acl HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\$ADuserAFR_sid $acl
#Claims to say that everyone has FullControl
$acl.GetAccessRules($true,$true, [System.Security.Principal.NTAccount])
#Check to see if RegistryIdentity is set to FullControl
(Get-Acl HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\$ADuserAFR_sid).Access | Format-Table -Wrap
#####################################
## Set Icons - Francais Accessible ##
#####################################
$img448_afr_base = "C:\Company\Profiles\AFR\flat_afr_448.jpg"
$img240_afr_base = "C:\Company\Profiles\AFR\flat_afr_240.jpg"
$img192_afr_base = "C:\Company\Profiles\AFR\flat_afr_192.jpg"
$img96_afr_base = "C:\Company\Profiles\AFR\flat_afr_96.jpg"
$img48_afr_base = "C:\Company\Profiles\AFR\flat_afr_48.jpg"
$img40_afr_base = "C:\Company\Profiles\AFR\flat_afr_40.jpg"
$img32_afr_base = "C:\Company\Profiles\AFR\flat_afr_32.jpg"
Set-ItemProperty -Force -Path $reg_base_afr -Name Image448 -Value $img448_afr_base
Set-ItemProperty -Force -Path $reg_base_afr -Name Image240 -Value $img240_afr_base
Set-ItemProperty -Force -Path $reg_base_afr -Name Image192 -Value $img192_afr_base
Set-ItemProperty -Force -Path $reg_base_afr -Name Image96 -Value $img96_afr_base
Set-ItemProperty -Force -Path $reg_base_afr -Name Image48 -Value $img48_afr_base
Set-ItemProperty -Force -Path $reg_base_afr -Name Image40 -Value $img40_afr_base
Set-ItemProperty -Force -Path $reg_base_afr -Name Image32 -Value $img32_afr_base
Я ожидаю, что Set-Acl установит разрешение для идентификации реестра в FullControl.
Мне отказано в доступе к разделу реестра, даже если я назначил владельца текущим пользователем (администратором).