programing

PowerShell에서 "이 시스템에서 스크립트 실행이 비활성화되었습니다."라고 표시됩니다.

muds 2023. 4. 21. 21:30
반응형

PowerShell에서 "이 시스템에서 스크립트 실행이 비활성화되었습니다."라고 표시됩니다.

는 지금 를 a a a a를 .cmdPowerShell에서 cmd.exe 에러가나요: ,, 다, 다, 다, 다, 다, 다, 다, :, :, :, :, :, :.

Management_Install.ps1이 시스템에서 스크립트 실행을 사용하지 않도록 설정되었기 때문에 로드할 수 없습니다.

다음 명령을 실행했습니다.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

★★★★★★★★★★★★★★★를 실행했을 때,Get-ExecutionPolicyPowerShell을 한다.Unrestricted.

Get-ExecutionPolicy

출력:

Unrestricted

cd "C:\Projects\Microsoft.연습.ESB\소스\샘플\관리포털\설치\Scripts" powershell을 클릭합니다.\관리_Install.ps1 1

경고: x86 PowerShell 실행 중...

★★C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1이 시스템에서 스크립트 실행을 사용하지 않도록 설정되었기 때문에 로드할 수 없습니다.아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 네.get-help about_signing세한것 、 을을해해요요 。

행: 1 문자: 25

  • .\Management_Install.ps1 < < < < 1 < 1

    • 카테고리정보 : 미지정 : (:) [ ], PSS 보안예외.

    • FullyQualifiedErrorId : 런타임예외.

C:\Projects\Microsoft.연습.ESB\소스\샘플\관리포털\설치\스크립트> PAUSE

아무 키나 눌러 계속 진행합니다.


시스템은 Windows Server 2008 R2.

내가 뭘 잘못하고 있지?

Windows Server 2008 R2를 사용하는 경우 실행 정책을 설정해야 하는 x64 및 x86 버전의 PowerShell이 있습니다.두 호스트 모두에서 실행 정책을 설정했습니까?

관리자는 PowerShell 창에 다음과 같이 입력하여 실행 정책을 설정할 수 있습니다.

Set-ExecutionPolicy RemoteSigned

자세한 내용은 Set-ExecutionPolicy Cmdlet 사용을 참조하십시오.

완료되면 다음과 같이 정책을 기본값으로 되돌릴 수 있습니다.

Set-ExecutionPolicy Restricted

다음과 같은 오류가 표시될 수 있습니다.

Access to the registry key
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied. 
To change the execution policy for the default (LocalMachine) scope, 
  start Windows PowerShell with the "Run as administrator" option. 
To change the execution policy for the current user, 
  run "Set-ExecutionPolicy -Scope CurrentUser".

따라서 다음과 같은 명령어를 실행해야 할 수 있습니다(댓글 참조).

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

이 하려면 , 「이 정책을 바이패스 할 수 .-ExecutionPolicy Bypass PowerShell 시

powershell -ExecutionPolicy Bypass -File script.ps1

로는 「 」라고 하는 해 주세요.cmdWindows Server 2012에서 x64를 실행하고 있었습니다.

Windows 11, Windows 10, Windows 7, Windows 8, Windows Server 2008 R2 또는 Windows Server 2012 의 경우는, Administrator 로서 다음의 커맨드를 실행합니다.

x86(32비트)
.C:\Windows\SysWOW64\cmd.exe
합니다.powershell Set-ExecutionPolicy RemoteSigned

x64(64비트)
.C:\Windows\system32\cmd.exe
합니다.powershell Set-ExecutionPolicy RemoteSigned

모드를 확인하려면

  • CMD:echo %PROCESSOR_ARCHITECTURE%
  • : Powershell 우 in :[Environment]::Is64BitProcess

참고 자료:
MSDN - Windows PowerShell 실행 정책
Windows - 32비트/64비트 디렉토리 설명

기존 답변의 대부분은 방법을 설명하지만, 그 이유를 설명하는 것은 거의 없습니다.인터넷상에서 낯선 사람의 코드, 특히 보안 대책을 무효로 하는 코드를 실행하기 전에, 자신이 무엇을 하고 있는지 정확하게 이해할 필요가 있습니다.이 문제에 대한 자세한 내용은 다음과 같습니다.

TechNet About Execution Policies 페이지에서 다음 작업을 수행합니다.

윈도우즈 PowerShell 실행 정책을 사용하면 윈도우즈 PowerShell이 구성 파일을 로드하고 스크립트를 실행하는 조건을 확인할 수 있습니다.

PowerShell Basics - 실행 정책코드 서명에 열거된 바와 같이 다음과 같은 이점이 있습니다.

  • 실행 제어 - 스크립트 실행에 대한 신뢰 수준을 제어합니다.
  • Command Highjack - 경로에 명령 주입을 방지합니다.
  • ID - 신뢰할 수 있는 개발자에 의해 작성 및 서명된 스크립트 및/또는 신뢰할 수 있는 인증 기관의 인증서로 서명된 스크립트입니다.
  • 무결성 - 말웨어 또는 악의적인 사용자가 스크립트를 수정할 수 없습니다.

현재 실행 정책을 확인하려면 을(를) 실행할 수 있습니다. 하지만 이 정책을 변경하려는 경우일 수 있습니다.

이렇게 하려면 cmdlet을 실행합니다.

실행 정책을 업데이트할 때 두 가지 주요 결정을 내려야 합니다.

실행 정책 유형:

  • Restricted - 로컬, 리모트 또는 다운로드된 스크립트는 시스템에서 실행할 수 없습니다.
  • AllSigned - 실행되는 모든 스크립트는 디지털 서명해야 합니다.
  • RemoteSigned - 모든 원격 스크립트(UNC) 또는 다운로드에 서명해야 합니다.
  • Unrestricted - 어떤 종류의 스크립트에도 서명이 필요 없습니다.

새로운 변경 범위

  • LocalMachine - 실행 정책은 컴퓨터의 모든 사용자에게 영향을 미칩니다.
  • CurrentUser - 실행 정책은 현재 사용자에게만 영향을 줍니다.
  • Process - 실행 정책은 현재 Windows PowerShell 프로세스에만 영향을 줍니다.

† = 디폴트

를 들어 CurrentUser만의 정책을 RemoteSigned로 변경하려면 다음 명령을 실행합니다.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

참고: 실행 정책을 변경하려면 PowerShell을 Administrator로 실행해야 합니다.일반 모드에서 실행 정책을 변경하려고 하면 다음 오류가 발생합니다.

레지스트리 키 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\'에 액세스합니다.PowerShell\1\ShellIds\Microsoft.PowerShell'이 거부되었습니다.기본(LocalMachine) 범위에 대한 실행 정책을 변경하려면 "관리자로 실행" 옵션을 사용하여 윈도우즈 PowerShell을 시작합니다.

인터넷에서 다운로드되지 않은(적어도 UNC 메타데이터가 포함되지 않은) 자체 스크립트에 대한 내부 제한을 강화하려면 정책에 서명된 스크립트만 실행하도록 강제할 수 있습니다.Scott Hanselman의 "PowerShell 스크립트 서명" 기사에 나와 있는 절차에 따라 스크립트를 서명할 수 있습니다.

주의: PowerShell을 시작할 때 PowerShell이 가장 먼저 실행하는 것은 환경을 원하는 대로 설정하는 사용자 프로파일 스크립트를 실행하는 것이기 때문에 대부분의 사용자는 PowerShell을 열 때마다 이 오류가 발생할 수 있습니다.

일반적으로 파일은 다음 위치에 있습니다.

%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

PowerShell 변수를 실행하여 정확한 위치를 찾을 수 있습니다.

$profile

프로파일에 신경 쓸 것이 없고 보안 설정에 신경쓰고 싶지 않다면 삭제만 하면 PowerShell에서 실행할 수 없는 것을 찾을 수 없습니다.

를 알 수.ExecutionPolicy하다

Get-ExecutionPolicy

디폴트로는 [Restricted]입니다.PowerShell 스크립트를 실행할 수 있도록 하려면 이 ExecutionPolicy를 제한 없음 또는 바이패스로 설정해야 합니다.

을 'Current User'로 할 수 .BypassPowerShell을 사용할 수 있습니다.

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force

제한되지 않은 정책은 모든 구성 파일을 로드하고 모든 스크립트를 실행합니다.인터넷에서 다운로드한 서명되지 않은 스크립트를 실행하면 실행 전에 사용 권한을 묻는 메시지가 표시됩니다.

반면 바이패스 정책에서는 아무것도 차단되지 않으며 스크립트 실행 중에 경고나 프롬프트가 표시되지 않습니다.바이패스ExecutionPolicyUnrestricted.

또한 스크립트가 문제를 해결하기 전에 다음 명령을 실행해도 문제가 해결됩니다.

Set-ExecutionPolicy Unrestricted

할 수 .CurrentUser관리자가 필요 없습니다.

하면 .RemoteSigned:

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

★★★★★★★★★★★★★★★★★」Unrestricted:

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted"

Geting and Setting Execution 정책에 대한 자세한 내용은 도움말 항목을 참조하십시오.

Help Get-ExecutionPolicy -Full
Help Set-ExecutionPolicy -Full

Windows 7의 경우:

[시작] 메뉴로 이동하여 "Windows PowerShell ISE"를 검색합니다.

x86 버전을 마우스 오른쪽 버튼으로 클릭하고 "관리자로서 실행"을 선택합니다.

Set-ExecutionPolicy RemoteSigned; ; ; ; ; ; ; ; ; ; ; ;를 선택합니다.예"를 선택합니다.

Powershell ISE의 64비트 버전(x86 이외의 버전)에도 이러한 순서를 반복합니다.

@Chad Miller가 암시한 단계를 명확히 하고 있을 뿐입니다.고마워 채드!

RemoteSigned: 사용자가 직접 작성한 모든 스크립트가 실행되며 인터넷에서 다운로드한 모든 스크립트는 신뢰할 수 있는 게시자가 서명해야 합니다.

OK, 다음과 같이 입력하여 정책을 변경합니다.

Set-ExecutionPolicy RemoteSigned

Windows 10 을 사용하고 있어, 커맨드를 실행할 수 없었습니다.내게 단서를 준 유일한 명령은 이것뿐이었다:

[x64]

  1. C:\Windows\Sys를 엽니다.WOW64\cmdexe [관리자로서]
  2. 명령어 > powershell Set-Execution Policy Unrestricted 를 실행합니다.

하지만 이것은 효과가 없었다.제한적이었어요.Windows 10 의 새로운 시큐러티 폴리시.다음 오류가 발생했습니다.

Set-Execution Policy:Windows PowerShell에서 실행 정책을 업데이트했지만 보다 구체적인 범위에서 정의된 정책에 의해 설정이 재정의되었습니다.재정의로 인해 셸은 현재 유효한 실행 정책을 유지합니다.

그래서 다른 방법(솔루션)을 찾았습니다.

  1. 실행 명령/콘솔 열기(Win + )
  2. 유형: gpedit.msc(그룹 정책 편집기)
  3. [로컬 컴퓨터 정책]-> [컴퓨터 설정]-> [관리 템플릿]-> [Windows 컴포넌트]-> [Windows Powershell ]으로 이동합니다.
  4. "스크립트 실행 켜기" 사용
  5. 필요에 따라서 정책을 설정합니다.저는 '모든 스크립트 허용'으로 설정했습니다.

이제 PowerShell을 열고 즐기세요.

먼저 PowerShell 창을 열고 이 명령을 실행해야 합니다.

set-ExecutionPolicy RemoteSigned -Scope CurrentUser

그러면 확인하라는 메시지가 나타납니다.라고 입력하고 을 누릅니다.

이 명령을 실행하면 현재 사용자에 대한 모든 정책이 원격으로 설정되어 있음을 확인할 수 있습니다.이 프로세스를 완료하는 데 몇 초 정도 걸립니다.

이미지는 다음과 같이 표시됩니다.

여기에 이미지 설명을 입력하십시오.

실행 정책이 설정되었는지 확인합니다.유형:

Get-ExecutionPolicy

설정되어 있는 경우, 출력은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오.

을 열고 PowerShell을 변경합니다.ExecutionPolicy:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

변경을 확인하는 메시지가 뜨면키를 누르고 을 누릅니다.

다음 명령을 실행해야 합니다.

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Win + 및 copy paste 명령을 입력하고 를 누릅니다.

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

그리고 스크립트를 실행합니다.

그런 다음 다음과 같은 변경 사항을 되돌립니다.

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "AllSigned"

Windows에서 명령 프롬프트를 엽니다.PowerShell에서만 문제가 발생하는 경우 다음 명령을 사용합니다.

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

실행 정책 설정은 환경에 따라 다릅니다.실행 중인 x86 ISE에서 스크립트를 실행하려는 경우 x86 PowerShell을 사용하여 실행 정책을 설정해야 합니다.마찬가지로 64비트 ISE를 실행하는 경우 64비트 PowerShell을 사용하여 정책을 설정해야 합니다.

이 옵션을 사용하여 "All" 옵션을 선택할 수 있습니다.

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
  1. 명령/콘솔 열기( Win + R ) 유형: gpedit. msc(그룹 정책 편집기)
  2. [로컬 컴퓨터 정책]-> [컴퓨터 설정]-> [관리 템플릿]-> [Windows 컴포넌트]-> [Windows Powershell ]으로 이동합니다.
  3. 스크립트 실행 사용 가능 필요에 따라 정책을 설정합니다.는 '모든 스크립트 허용'으로 설정했습니다.

이제 run 명령어를 실행합니다.앱이 실행될 것임을 신뢰하십시오.즐기세요 :)

다음 명령을 사용하여 이를 우회할 수도 있습니다.

powershell Get-Content .\test.ps1 | Invoke-Expression

Scott 이에서는 PowerShell을 방법에 설명합니다.Set-ExecutionPolicy"CHANGE: "CHANGE:

PowerShell 실행 정책을 우회하는 15가지 방법

나 또한 비슷한 문제에 직면했다.이거 먹어봐.

Windows 를 사용하고 있기 때문에, 이하의 순서에 따릅니다.관리자 권한으로 명령 프롬프트를 열고 다음 경로로 이동합니다.

C:\Users\%username%\AppData\Roaming\npm\

이 폴더(디렉토리)에서 ng.ps1 파일을 찾아 삭제하십시오(del ng.ps1).

npm 캐시를 클리어 할 수도 있습니다만, 이 순서 없이도 동작합니다.

Git이 설치되어 있다면 Git Bash만 사용하세요.

여기에 이미지 설명을 입력하십시오.

Set-ExecutionPolicy RemoteSigned

PowerShell에서 관리자 모드에서 이 명령을 실행하면 문제가 해결됩니다.

Window 10에서:

관리자가 아닌 경우 다음을 사용할 수 있습니다.

powershell Set-ExecutionPolicy -Scope CurrentUser

cmdlet Set-ExecutionPolicy at command pipeline position 1
Supply values for the following parameters:
ExecutionPolicy: `RemoteSigned`

그것은 내 문제를 마법처럼 해결해줬어!

PowerShell ISE 에디터에서 다음 행을 실행하면 처음에 스크립트가 허용됩니다.

Set-ExecutionPolicy RemoteSigned -Scope Process

Windows 11의 경우...

그것은 정말 매우 쉽다.설정 어플리케이션을 엽니다.프라이버시보안으로 이동합니다.

프라이버시 및 보안 이미지

[개발자 대상]을 클릭하여 맨 아래까지 스크롤하여 [PowerShell]옵션을 찾습니다.이 옵션에서 [실행 정책 변경...]체크박스를 켜겠습니다리모트 스크립트」를 참조해 주세요.

개발자 옵션 이미지

  1. 관리자로 PowerShell을 열고 Set-Execution Policy -Scope CurrentUser를 실행합니다.
  2. Remote Signed를 입력하고 Enter 키를 누릅니다.
  3. Set-Execution Policy -Scope CurrentUser를 실행합니다.
  4. 무제한 제공 후 Enter 키를 누릅니다.

관리자로 PowerShell을 엽니다.다음 명령을 실행합니다.

Set-Execution Policy 원격 서명

물으면 Y를 입력하세요!

Windows 10 에서는, 「느슨한 파일을 포함한 임의의 소스에서 앱을 인스톨 합니다」라고 하는 이름의 옵션을 유효하게 합니다.

여기에 이미지 설명을 입력하십시오.

그것은 나에게 문제를 해결했다.

이 문제를 해결하려면 PowerShell 스크립트가 특정 시스템에서 실행되도록 실행 정책을 설정해야 합니다.방법은 다음과 같습니다.

"관리자로서 실행"을 선택하여 PowerShell 콘솔을 열고 계속 진행하라는 메시지가 표시되면 Set-ExecutionPolicy RemoteSigned Type "Y" 명령을 사용하여 실행 정책을 설정합니다.

크레딧 : https://www.sharepointdiary.com/2014/03/fix-for-powershell-script-cannot-be-loaded-because-running-scripts-is-disabled-on-this-system.html

PowerShell 2.0에서는 기본적으로 실행 정책이 실행 안 함으로 설정되어 있습니다.

그 후 PowerShell 팀은 많은 개선을 이루어 사용자가 스크립트를 실행하는 동안 많은 것을 손상시키지 않을 것이라고 확신합니다.따라서 PowerShell 4.0 이후에는 기본적으로 활성화되어 있습니다.

이 경우 다음과 같이 입력합니다.Set-ExecutionPolicy RemoteSignedPowerShell 콘솔에서 "예"라고 대답합니다.

언급URL : https://stackoverflow.com/questions/4037939/powershell-says-execution-of-scripts-is-disabled-on-this-system

반응형