IT

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

itgroup 2023. 4. 8. 08:24
반응형

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

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

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에서는 UNC 경로를 원격 파일로 취급합니다.이러한 서버상에서 이 기능을 디세블로 할 수도 있습니다(UncAsIntranet = 0,또는 리모트 머신을 신뢰할 수 있는 호스트에 추가합니다.

둘 다 원하지 않는 경우 PowerShell v2는-ExecutionPolicypseudocode가 원하는 대로 동작하는 파라미터입니다. PowerShell -ExecutionPolicy Bypass -File (...).

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

Set-ExecutionPolicy bypass

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

  1. 를 오른쪽 클릭합니다..ps1해당 파일을 선택하고 Properties를 선택합니다.

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

    여기에 이미지 설명 입력

  3. [확인] 을 클릭합니다.

SEE_MASK_NOZONE CHECKS env 변수에 1만 할당하면 됩니다.

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

다음을 사용하여 파일을 편집하십시오.

notepad foo.ps1:Zone.Identifier

그리고 'ZoneId=0'을 설정합니다.

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

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

이 중 어느 것도 내 경우에는 효과가 없었다.넷비(NetB)로 바뀐 것은FQDN의 IOS 이름

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

이름을 사용하면 IE의 "인트라넷 네트워크 자동 검출" 설정이 생략됩니다.

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

Set-Execution Policy를 사용하여 머신에 실행 정책을 설정하는 경우:

Set-ExecutionPolicy Unrestricted

다양한 실행 정책을 조사하여 어떤 정책이 적합한지 확인할 수 있습니다."를 봐주세요.help about_signing자세한 것은, 을 참조해 주세요.

인터넷에서 대본을 다운받았나요?

그런 다음 시스템외부의 스트림을 사용하여 파일에서 NTFS 스트림을 제거합니다.명령줄에 exe가 표시됩니다.

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

추신 구글링 감소)

PS1 파일이 여러 개 있는 경우 PowerShell을 열고 다음 명령을 작성합니다.여기서는 경로와 함께 경로를 변경해야 합니다.

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

set-execution policy "Policyname" - force switch를 시도하면 경고 팝업이 나타나지 않습니다.

이미 로드된 PowerShell 세션에서 파일에 액세스하려면 Unblock-File을 사용하여 파일을 안전한 것으로 표시하십시오(이미 다음과 같은 완화 실행 정책을 설정해야 함).UnrestrictedPowerShell の 세shellshellshellshellshell 。

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

저로서는 명령어로 스크립트를 실행하고 있으며, 에일리어스 이름으로 액세스하고 있었습니다.명령어로 에일리어스를 실제 경로("\\ServerName\" -> "C:\"")로 변경하는 것만으로 충분했습니다.로컬로 간주되어 있습니다.

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

반응형