El comando en la respuesta de syneticon-dj no funciona, porque un administrador elevado normal no tiene acceso de escritura a la clave. Los comentarios mencionan que necesita cambiar los permisos. Pero esto implica mucho hacer clic en regedit.exe y no funciona para instalaciones con script.
Yo uso el siguiente script de PowerShell:
$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
primero cambia los permisos en la clave y luego establece PowerShell como el shell.
Tenga en cuenta que esto solo puede funcionar en un sistema operativo en inglés, ya que se refiere al grupo 'Administradores'.
AvailableShells
clave, solo TrustedInstaller sí. No puedo cambiar los permisos sin tomar posesión de la clave. ¿Crees que tomar posesión de una clave del sistema presentará algún problema? Aquí están las ACL de mi registro: gist.github.com/vcsjones/4dca25f94bfb1cfd5857