ps1 스크립트가 기본적으로 메모장과 연결되어 있는 이유는 무엇입니까?

ps1 스크립트가 기본적으로 메모장과 연결되어 있는 이유는 무엇입니까?

Windows에서는 , 또는 스크립트(배치 및 VBScript) 파일을 클릭할 때마다 .bat해당 .cmd파일 .vbs이 개별 엔진(명령 프롬프트 및 Windows 스크립트 호스트)에 의해 실행됩니다.

.ps1그렇다면 Powershell 대신 Powershell 확장이 기본적으로 메모장과 연결된 이유는 무엇입니까 ?

답변1

분명히 Microsoft는 기본적으로 PowerShell을 안전하게 설계하려고 했습니다. Microsoft가 이를 어디에도 명시적으로 언급하지 않은 것 같지만 이 제한은 아마도 사용자가 속아서 악성 스크립트를 실행하고 유포하는 것을 방지하기 위한 것이었습니다.

이것이 왜 위험할 수 있는지에 대한 좋은 설명이 있습니다.여기:

PowerShell은 사실상 Windows 시스템의 CMD 및 배치 스크립트를 대체하기 위한 명령 셸 및 스크립팅 언어입니다. 따라서 명령줄에서 수동으로 수행할 수 있는 모든 작업을 수행하도록 PowerShell 스크립트를 구성할 수 있습니다. 이는 사용자 계정에 적용되는 제한 사항까지 시스템에서 실질적으로 모든 변경을 가능하게 하는 것과 같습니다. 따라서 PowerShell 스크립트를 두 번 클릭하고 전체 관리자 권한으로 실행할 수 있다면 다음과 같은 간단한 한 줄로 하루를 망칠 수 있습니다.Get-ChildItem "$env:SystemDrive\" -Recurse -ErrorAction SilentlyContinue | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue 위 명령을 실행하지 마십시오!

...

더 나쁜 것은 파일 시스템을 폐기하는 스크립트를 얻는 대신 친구가 키로거 또는 원격 액세스 서비스를 다운로드하고 설치하는 스크립트를 실행하도록 속일 수 있다는 것입니다.

그러나 실제로는 .batPowershell에 명령줄 인수로 코드를 전달하기만 하면 파일을 통해 Powershell 코드를 실행할 수 있습니다. 따라서 PowerShell은 이제 다음을 사용합니다.AMSI(안티맬웨어 검사 인터페이스)로 악성 스크립트를 차단합니다. 설명할 수 없는 이유로 원래 제한 사항은 그대로 유지되었습니다.

관련 정보