Perintah dalam jawaban syneticon-dj tidak bekerja, karena administrator yang ditinggikan normal tidak memiliki akses tulis ke kunci. Komentar menyebutkan bahwa Anda perlu mengubah izin. Tapi ini melibatkan banyak mengklik di regedit.exe dan tidak berfungsi untuk instalasi scripted.
Saya menggunakan skrip PowerShell berikut:
$definition = @"
using System;
using System.Runtime.InteropServices;
namespace Win32Api
{
public class NtDll
{
[DllImport("ntdll.dll", EntryPoint="RtlAdjustPrivilege")]
public static extern int RtlAdjustPrivilege(ulong Privilege, bool Enable, bool CurrentThread, ref bool Enabled);
}
}
"@
Add-Type -TypeDefinition $definition -PassThru | out-null
$bEnabled = $false
# Enable SeTakeOwnershipPrivilege
$res = [Win32Api.NtDll]::RtlAdjustPrivilege(9, $true, $false, [ref]$bEnabled)
$key = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AlternateShells\AvailableShells", [Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::takeownership)
$acl = $key.GetAccessControl()
$acl.SetOwner([System.Security.Principal.NTAccount]"Administrators")
$key.SetAccessControl($acl)
$rule = New-Object System.Security.AccessControl.RegistryAccessRule ("BUILTIN\Administrators","FullControl","Allow")
$acl.SetAccessRule($rule)
$key.SetAccessControl($acl)
New-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AlternateShells\AvailableShells" -name 90000 -value "%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\Powershell.exe" -propertyType String
pertama-tama mengubah izin pada kunci dan kemudian menetapkan PowerShell sebagai shell.
Perhatikan ini hanya dapat bekerja pada OS Inggris, karena merujuk pada grup 'Administrator'.
AvailableShells
kunci itu, hanya TrustedInstaller yang melakukannya. Saya tidak dapat mengubah izin tanpa mengambil kepemilikan kunci. Apakah menurut Anda kepemilikan kunci sistem akan menimbulkan masalah? Berikut ini adalah ACL registri saya: gist.github.com/vcsjones/4dca25f94bfb1cfd5857