명령줄에서 스크립트를 실행하는 '보안 경고' 무시
신뢰하는 공유 폴더에서 스크립트를 실행하려고 합니다.
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는-ExecutionPolicy
pseudocode가 원하는 대로 동작하는 파라미터입니다. PowerShell -ExecutionPolicy Bypass -File (...)
.
경고를 피하기 위해 다음을 수행할 수 있습니다.
Set-ExecutionPolicy bypass
다운로드한 powershell 스크립트에서 이 오류가 발생할 경우 다음과 같이 스크립트의 차단을 해제할 수 있습니다.
를 오른쪽 클릭합니다.
.ps1
해당 파일을 선택하고 Properties를 선택합니다.파일 속성에서 차단 해제를 클릭합니다.
[확인] 을 클릭합니다.
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을 사용하여 파일을 안전한 것으로 표시하십시오(이미 다음과 같은 완화 실행 정책을 설정해야 함).Unrestricted
PowerShell の 세shellshellshellshellshell 。
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
저로서는 명령어로 스크립트를 실행하고 있으며, 에일리어스 이름으로 액세스하고 있었습니다.명령어로 에일리어스를 실제 경로("\\ServerName\" -> "C:\"")로 변경하는 것만으로 충분했습니다.로컬로 간주되어 있습니다.
언급URL : https://stackoverflow.com/questions/728143/ignore-security-warning-running-script-from-command-line
'IT' 카테고리의 다른 글
특정 확장자를 가진 모든 파일을 검색하여 교체하는 PowerShell 스크립트 (0) | 2023.04.08 |
---|---|
NVARCHAR(MAX)의 최대 문자는 얼마입니까? (0) | 2023.04.08 |
Invoke-WebRequest 진행률 숨기기 (0) | 2023.04.08 |
새로운 예외 생성 및 발생 (0) | 2023.04.08 |
저장된 모든 행을 포함하는 기존 SQL Server 테이블의 INSERT 스크립트를 생성하려면 어떻게 해야 합니까? (0) | 2023.04.08 |