다음을 통해 공유


SQL Server용 도메인 컨트롤러에서 RemoteSigned가 설정되지 않은 경우 SQL Server PowerShell 문제

이 문서는 도메인 컨트롤러의 컴퓨터 정책이 SQL Server용 GPO에 의해 RemoteSigned로 설정되지 않은 경우 발생하는 문제를 해결하는 데 도움이 됩니다.

원래 제품 버전: SQL Server
원래 KB 번호: 2995870

증상

Microsoft SQL Server 2012 또는 Microsoft SQL Server 2014의 SQL Server PowerShell 콘솔을 열고 도메인 컨트롤러의 컴퓨터 정책이 GPO(그룹 정책 개체)에 의해 RemoteSigned로 설정되지 않은 경우 다음 오류 메시지가 표시될 수 있습니다.

set-executionpolicy: Windows PowerShell이 실행 정책을 성공적으로 업데이트했지만 설정은 보다 구체적인 범위에 정의된 정책에 의해 재정의됩니다. 재정의로 인해 셸은 Unrestricted의 현재 유효 실행 정책을 유지합니다. 실행 정책 설정을 보려면 Get-ExecutionPolicy -List를 입력합니다.
자세한 내용은 참조하세요.
"Get-Help Set-ExecutionPolicy".
줄:1 문자:1
+ set-executionpolicy RemoteSigned -scope process -Force

syspolicy_purge_history 또한 도메인 컨트롤러가 GPO에서 RemoteSigned설정되지 않은 경우 세 번째 단계에서 작업이 실패하고 다음 오류 메시지가 표시될 수 있습니다.

사용자로 실행됨: AJ\devARsqlagt. PowerShell 스크립트의 첫째 줄에서 작업 단계에 대한 오류가 표시되었습니다. 해당 줄은 'set-executionpolicy RemoteSigned -scope process -Force'입니다. 스크립트를 수정하고 작업 일정을 다시 예약합니다. PowerShell에서 반환된 오류 정보는 '보안 오류입니다. '. 프로세스 종료 코드 -1. 단계가 실패했습니다.

원인

이 문제는 컴퓨터 정책이 GPO에 의해 RemoteSigned설정되지 않고 멤버 서버로 푸시되기 때문에 발생합니다. 예를 들어 도메인 컨트롤러 설정에 대한 실행 정책이 다음과 같은 경우입니다.

Scope -                   ExecutionPolicy
--------------------------------------------------------------
MachinePolicy -           Unrestricted
UserPolicy -              Undefined
Process -                 RemoteSigned
CurrentUser -             Undefined
LocalMachine -            RemoteSigned

MachinePolicy는 다른 모든 정책보다 우선합니다.

그룹 정책은 도메인 컨트롤러에서 해당 그룹 정책에 연결된 멤버 서버로 푸시됩니다. 이렇게 하면 MachinePolicy 제한되지 않는 모드로 설정되고 SQL Server PowerShell이 실행 정책을 사용하여 실행 RemoteSigned 하려고 시도합니다. 따라서 충돌하는 상황이 발생하고 작업이 실패합니다 syspolicy_purge_history . 도메인 컨트롤러의 컴퓨터 정책에 관계없이 SQL Server에서 동일한 작업이 성공적으로 실행됩니다.

해결 방법

보안 조치로 SQL Server 2012는 RemoteSigned 정책에서 SQL PowerShell을 시작합니다. 이로 인해 작업이 실패하고 이전 문제가 발생합니다.

제한 없음은 제한이 없음을 의미하기 때문에 보안 관점에서는 권장되지 않습니다. 이것이 바로 SQL 2012에서 시작할 때 MachinePolicy가 도메인 컨트롤러에서 RemoteSigned로 설정된 경우 PowerShell 스크립트가 성공적으로 실행되는 이유입니다.

이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.

  • GPO에서 도메인 컨트롤러의 컴퓨터 정책을 설정하지 마세요. 정의되지 않은 경우 다음 수준 정책(예: UserPolicy, Process, CurrentUser 및 마지막으로 LocalMachine)이 우선합니다.

  • Active Directory 사용자 및 컴퓨터 새 OU(조직 구성 단위)를 만들고 이 OU를 그룹 정책과 연결합니다. 그런 다음 RemoteSigned 정책에 사용하도록 설정합니다. 이렇게 하려면 다음 단계를 수행하세요.

    1. Active Directory 사용자 및 컴퓨터 이동합니다.

    2. 도메인 -New ->>Organizational Unit을 마우스 오른쪽 단추로 클릭하여 새 조직 구성 단위를 만듭니다.

    3. 실행에 gpmc.msc를 입력한 다음 그룹 정책 개체 ->새로 만들기를 마우스 오른쪽 단추로 클릭하여 GPO를 만듭니다.

    4. 새로 만든 GPO ->Edit를 마우스 오른쪽 단추로 클릭합니다. 새 창이 열립니다.

    5. 컴퓨터 구성 -정책 ->>관리 템플릿 ->Windows 구성 요소 ->Windows PowerShell로 이동 -> 스크립트 실행 켜기를 두 번 클릭합니다.

    6. 로컬 스크립트 및 원격 서명된 스크립트를 허용하도록 실행 정책을 설정합니다.

    7. 적용을 클릭하고 확인을 클릭합니다.

    8. Active Directory 사용자 및 컴퓨터 이동한 다음 컴퓨터를 클릭합니다. 도메인에 대한 컴퓨터 목록을 찾습니다. 새로 만든 조직 구성 단위에서 이동할 컴퓨터를 마우스 오른쪽 단추로 클릭합니다. 이러한 방식으로 단일 또는 한 대의 컴퓨터 그룹을 조직 구성 단위로 이동할 수 있습니다.

    9. 그룹 정책 관리로 이동하여 새로 만든 조직 구성 단위를 마우스 오른쪽 단추로 클릭하고 기존 GPO 연결을 클릭하고 새로 만든 GPO를 선택한 다음 확인을 클릭합니다.

    10. PowerShell에서 이 명령을 실행하여 도메인 컨트롤러 및 클라이언트 컴퓨터에서 정책을 업데이트합니다.

      gpupdate /force
      
    11. 조직 구성 요소 및 클라이언트 구성 요소에 대한 컴퓨터 정책을 확인합니다. RemoteSigned여야 합니다.

참조

실행 정책 정보