development

명령 줄에서 스크립트를 실행하는 '보안 경고'무시

big-blog 2020. 11. 29. 11:59
반응형

명령 줄에서 스크립트를 실행하는 '보안 경고'무시


내가 신뢰하는 공유 폴더에서 스크립트를 실행하려고합니다.

PowerShell -file "\\server\scripts\my.ps1"

하지만 보안 경고를 받고 계속하려면 'R'을 눌러야합니다.

보안 경고 신뢰할 수있는 스크립트 만 실행하십시오. 인터넷의 스크립트가 유용 할 수 있지만이 스크립트는 잠재적으로 컴퓨터에 해를 끼칠 수 있습니다. \ server \ scripts \ my.ps1을 실행 하시겠습니까? [D] 실행 안 함 [R] 한 번 실행 [S] 일시 중지 [?] 도움말 (기본값은 "D") : d

이 경고를 무시할 수 있습니까? 원하는 의사 코드는 다음과 같습니다.

PowerShell -IGNORE_SECURITY_WARNING -file "\\server\scripts\my.ps1"

이에 대해서는 Lee Holmes 블로그의 "표준 이미지의 PowerShell 실행 정책"Windows Power Shell 블로그 의 "PowerShell의 보안 지침 원칙"에서 다룹니다 .

요약 일부 컴퓨터는 UNC 경로를 불량 인터넷으로 취급하므로 PowerShell은이를 원격 파일로 취급합니다. 해당 서버 ( UncAsIntranet = 0,) 에서이 기능을 비활성화 하거나 원격 시스템을 신뢰할 수있는 호스트에 추가 할 수 있습니다.

둘 다 수행하지 않으려는 경우 PowerShell v2는 -ExecutionPolicy의사 코드가 원하는 것을 정확히 수행 하는 매개 변수를 지원합니다 . PowerShell -ExecutionPolicy Bypass -File (...).


경고를 피하기 위해 다음을 수행 할 수 있습니다.

Set-ExecutionPolicy bypass

다운로드 한 powershell 스크립트에서이 오류가 발생하는 경우 다음과 같이 스크립트를 차단 해제 할 수 있습니다.

  1. 해당 .ps1파일을 마우스 오른쪽 버튼으로 클릭 하고 속성을 선택합니다.

  2. 파일 속성에서 차단 해제클릭 합니다.

    여기에 이미지 설명 입력

  3. 클릭 OK


SEE_MASK_NOZONECHECKS 환경 변수에 1을 할당하십시오.

$env:SEE_MASK_NOZONECHECKS = 1
Start-Process $msi_file_path /qn -Wait | out-null

이것을 시도하고 다음을 사용하여 파일을 편집하십시오.

notepad foo.ps1:Zone.Identifier

그리고 'ZoneId = 0'설정


Set-ExecutionPolicy를 사용하여 컴퓨터에서 실행 정책을 설정하려고합니다.

Set-ExecutionPolicy Unrestricted

다양한 실행 정책을 조사하여 어떤 것이 적합한 지 확인할 수 있습니다. help about_signing자세한 내용 은 " "를 참조하십시오.


이 중 어느 것도 내 특정 인스턴스에서 작동하지 않았습니다. FQDN에서 NetBIOS 이름으로 변경 한 것은 무엇입니까?

대신 :
\\server.domain.net\file.ps1
사용 :
\\server\file.ps1

이름을 사용하면 IE의 "인트라넷 네트워크 자동 감지"구성을 우회합니다.

여기 블로그의 옵션 1을 참조하십시오. http://setspn.blogspot.com/2011/05/running-powershell-scripts-from-unc.html


이 powershell 스크립트를 만들어 내 서버의 공유에있는 모든 파일을 차단 해제했습니다.

Get-ChildItem "\\ServerName\e$\MyDirectory\" -Recurse -File | % {
       Unblock-File -Path $_.FullName
}

인터넷에서 스크립트를 다운로드 했습니까?

그런 다음 명령 줄에서 sysinternal의 streams.exe사용하여 파일에서 NTFS 스트림을 제거 합니다.

cmd> streams.exe .\my.ps1

이제 스크립트를 다시 실행 해보십시오.


공유 폴더에서 ps 스크립트를 시작해야한다고 가정합니다.

copy \\\server\script.ps1 c:\tmp.ps1 /y && PowerShell.exe -ExecutionPolicy Bypass -File c:\tmp.ps1 && del /f c:\tmp.ps1

PS 검색 검색 감소)


ps1 파일이 여러 개인 경우 PowerShell을 열고 다음 명령을 작성하는 것은 매우 간단합니다. 여기에서 경로로 경로를 변경해야합니다.

PS C:\Users> Get-ChildItem -Path "D:\downlod" -Recurse | Unblock-File

set-executionpolicy "Policyname"-force 스위치를 사용하면 경고 팝업이 표시되지 않습니다.

참고 URL : https://stackoverflow.com/questions/728143/ignore-security-warning-running-script-from-command-line

반응형