Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a resolver el problema que se produce cuando la directiva de equipo del controlador de dominio no está establecida en RemoteSigned by GPO for SQL Server.
Versión del producto original: SQL Server
Número de KB original: 2995870
Síntomas
Al abrir la consola de SQL Server PowerShell de Microsoft SQL Server 2012 o Microsoft SQL Server 2014 y la directiva de máquina del controlador de dominio no está establecida en RemoteSigned by Group Policy Object (GPO), puede recibir el siguiente mensaje de error:
set-executionpolicy: Windows PowerShell actualizó correctamente la directiva de ejecución, pero la configuración se invalida mediante una directiva definida en un ámbito más específico. Debido a la invalidación, el shell conservará su directiva de ejecución efectiva actual de Unrestricted. Escriba Get-ExecutionPolicy -List para ver la configuración de la directiva de ejecución.
Para obtener más información, vea
"Get-Help Set-ExecutionPolicy".
At line:1 char:1
+ set-executionpolicy RemoteSigned -scope process -Force
Además, syspolicy_purge_history el trabajo produce un error en el tercer paso si el controlador de dominio no está establecido en RemoteSigned by GPO y puede recibir el siguiente mensaje de error:
Ejecutado como usuario: AJ\devARsqlagt. Un paso del trabajo recibió un error en la línea 1 de un script de PowerShell. La línea correspondiente es "set-executionpolicy RemoteSigned -scope process -Force". Corrija el script y vuelva a programar el trabajo. La información de error devuelta por PowerShell es: "Error de seguridad. '. Procesar código de salida -1. Error en el paso.
Causa
Este problema se produce porque el GPO no establece la directiva de máquina en RemoteSigned by GPO y se inserta en los servidores miembros. Por ejemplo, si la directiva de ejecución para la configuración del controlador de dominio es la siguiente:
Scope - ExecutionPolicy
--------------------------------------------------------------
MachinePolicy - Unrestricted
UserPolicy - Undefined
Process - RemoteSigned
CurrentUser - Undefined
LocalMachine - RemoteSigned
MachinePolicy tiene prioridad sobre todas las demás directivas.
La directiva de grupo se inserta desde el controlador de dominio a los servidores miembros asociados a esa directiva de grupo. Esto establece el modo MachinePolicy Sin restricciones y SQL Server PowerShell intenta ejecutarse con RemoteSigned la directiva de ejecución. Por lo tanto, se produce una situación en conflicto y se produce un error en el syspolicy_purge_history trabajo. El mismo trabajo se ejecuta correctamente en SQL Server, independientemente de la directiva de máquina en el controlador de dominio.
Solución alternativa
Como medida de seguridad, SQL Server 2012 inicia SQL PowerShell en la directiva RemoteSigned. Esto hace que se produzca un error en el trabajo y se produzca el problema anterior.
Sin restricciones, definitivamente no se recomienda desde una perspectiva de seguridad porque significa No restricciones. Ese es el motivo por el que se inicia desde SQL 2012, los scripts de PowerShell se ejecutan correctamente cuando MachinePolicy se establece como RemoteSigned en el controlador de dominio.
Para resolver este problema, use uno de los métodos siguientes:
No establezca la directiva de máquina del controlador de dominio por GPO. Si no está definido, significa que la siguiente directiva de nivel (por ejemplo, UserPolicy, Process, Then CurrentUser y, por último, LocalMachine) tendrá prioridad.
Cree una unidad organizativa (OU) en Usuarios y equipos de Active Directory y vincule esta unidad organizativa con la directiva de grupo. A continuación, habilite para la directiva RemoteSigned. Para ello, siga estos pasos:
Vaya a Usuarios y equipos de Active Directory.
Haga clic con el botón derecho en el dominio ->Nueva> unidad organizativa para crear una unidad organizativa.
Escriba gpmc.msc en Ejecutar y, a continuación, haga clic con el botón derecho en Objeto de directiva de grupo ->Nuevo para crear un nuevo GPO.
Haga clic con el botón derecho en el GPO recién creado ->Editar. Se abrirá una nueva ventana.
Vaya a Configuración del equipo ->Directivas ->Plantillas administrativas ->Componentes de Windows ->Windows PowerShell-> haga doble clic en Activar ejecución de scripts.
Establezca la directiva de ejecución en Permitir scripts locales y scripts firmados remotos.
Haga clic en Aplicar y, a continuación, en Aceptar.
Vaya a Usuarios y equipos de Active Directory y haga clic en Equipos. Encontrará una lista de equipos para el dominio. Haga clic con el botón derecho en los equipos que desea mover en la unidad organizativa recién creada. De esta manera, puede mover un único grupo de equipos a una unidad organizativa.
Vaya a Administración de directivas de grupo, haga clic con el botón derecho en Unidad organizativa recién creada, haga clic en Vincular un GPO existente, seleccione el GPO recién creado y, a continuación, haga clic en Aceptar.
Actualice la directiva en el controlador de dominio y en el equipo cliente ejecutando este comando en PowerShell.
gpupdate /forceCompruebe la directiva de máquina para unidad organizativa y componente de cliente; debe ser RemoteSigned.