ps1
개요
Windows 명령 프롬프트(CMD)에서 사용하는 .bat .cmd 파일의 파워셸 버전이다.
해당 파일의 큰 차이점은 .bat 파일 처럼 더블클릭으로 실행되지 않는다. (메모장이 열리거나… 아무일도 일어나지 않음.)
그 이유는 .NET 기반으로 시스템 내부에 강력한 제어 권한을 가져 사용자가 의도치 않게 악성 스크립트를 실행하는 것을 막고자 차단한 것이다.
핵심 개념
- 용어 1: .bat
- 용어 2: .ps1
상세 내용
.ps1 실행 방법
| 구분 | 설명 |
|---|---|
| 권한 변경 후 실행 | 파워셸을 관리자 권한으로 열고 Set-ExecutionPolicy RemoteSigned 명령어를 통해 로컬에서 작성한 스크립트를 실행할 수 있도록 정책을 풀어줘야 한다. |
| CMD/스케줄러에서 호출 시 | 보안 정책을 일시적으로 우회하는 옵션을 붙여서 실행해야 한다.powershell -ExecutionPolicy Bypass -File "C:\path\to\script.ps1 |
정리
확장자에 .ps가 아니라 굳이 숫자 1이 붙은 이유는 마이크로소프트가 파워셸을 만들기 훨씬 전부터 .ps라는 확장자가 전 세계적으로 사용 되고 있었다.
포스트스크립트(PostScript)의 선점, 어도비(Adobe)가 개발한 인쇄용 페이지 기술 언어 파일의 확장자이다. 90년대부터 모든 운영체제에 표준처럼 쓰이던 확장자였다. 이로 인해 인쇄 파일과 파워셸 스크립트 파일을 구분하지 못해 시스템의 오작동이나 파일 연결 손상이 발생할 수 있었다.
이를 피하기 위해 뒤에 숫자를 붙여 완전히 새로운 확장자를 급조해야 했다.
파워셸의 확장자에 붙은 숫자는 엔진 버전이 맞다.
하지만 버전이 올라갈 수록 기존 시스템이나 운영 서버에서 돌아가던 수많은 자동화 스크립트와 이를 호출하는 스케줄러 코드를 전부 수정해야 하는 대참사가 벌어지므로 결국 고착화되는 이름을 가지게 되었다.
이는 마이크로소프트의 설계 미스다.
댓글

