일 년 만에 다시 책을 집어들었습니다
학습에 활용한 도서는 윈도우 파워셸 3 시작하기 – 제2판(원서명: Learn Windows PowerShell 3 in a Month of Lunches)이다.
▲ 이 책을 산 것은 꽤 오래되었다. 제이펍 블로그에서 처음 출간 소식을 접하고 책이 나오자 마자 구매 버튼을 눌렀던 것 같다. 그동안 뭐 한다고 못 봤지?
PowerShell에 대한 인식
일단 파워쉘(파워셸?) 초보인 나의 PowerShell에 대한 인식은 아래와 같다.
- 역시 콘솔! 작업할 때 있어 보이고 빠르다.
- 자동화 가능한 툴이다. 윈도우 서버 엔지니어에게 축복이다.
- 그동안 윈도우가 GUI를 잘 지원해 편하다는 인상은 받았다. 하지만 GUI는 고급 옵션이 너무 복잡하거나 빠른 처리/반복 실행을 요하는 작업에는 약점이 있었다. 파워쉘은 이를 깨끗하게 해결해준다. UNIX 계열의 콘솔 중심 OS에 대한 열등감을 해소해주는 느낌.
- 모든 서버 제품의 하단에 위치하며 전체 기능과 연관되어 있다. 강력하게 다가오면서도 무서운 부분인 것 같다. 처음 레지스트리의 존재를 알고 조금씩 살펴보던 느낌과 흡사하다. OS 전체를 움직이는 쾌감을 선사한다.
PowerShell 앱이 4개??
▲ 아우 헷갈려. 뭐가 뭔지…
시작 화면에서 powershell로 검색하면
- Windows PowerShell (64비트용으로 추측)
- Windows PowerShell ISE (64비트용으로 추측)
- Windwos PowerShell (x86)
- Windows PowerShell ISE (x86)
이렇게 파워쉘을 실행하기 전부터 헷갈리게 여러 앱이 있다. 그냥 콘솔 기능만 가진 것이 Windows PowerShell이고, 그래픽 콘솔로 불리며 파워쉘 스크립트를 편집할 수 있는 툴이 포함된 것이 Windows PowerShell ISE인 것 같다. 책을 읽어보니 파워쉘의 제목 표시줄을 확인해서 64비트 운영체제에서 호환되는 버전을 동작시켜야겠다는 생각이 든다. 32비트 파워쉘은 최신 기능이 모두 지원되지 않는다고 한다.
학습에 사용한 버전은 PowerShell 4.0
현재 사용 중인 윈도우 버전은 2012 R2이다. 거기에 포함된 PowerShell 버전은 4.0이다.
▲ $PSVersionTable 명령. 윈도우 버전을 winver 커맨드로 확인하는 쾌감이 여기서도 느껴진다.
하위 호환성이 완벽할 것임을 기대하며 책을 읽기 시작.
일단 실행해보고 싶다!
▲ 윈도우 서버 2012 R2의 작업 표시줄을 보니 이렇게 64비트용을 기본적으로 제공하는 모습에… 이걸 ‘관리자 권한’으로 사용하면 되겠다는 생각이 든다. 스크립트 편집기가 내장된 ISE(통합 스크립팅 환경)은 뭔가를 좀 알고 *.ps1 파일을 만들고 편집할 때 사용해야겠다.
▲ 파워쉘에서 ise를 입력하면 PowerShell ISE를 구동시킨다. 오예! 시작 화면에서 ise를 적는 것보다 더 멋있고 빠르다.
▲ 제목 없음1.ps1 이라는 파일명이 생소하다. 프로그래밍 IDE 같아서 오… 뭔가 시작되는건가? 하는 기대도 든다.
나름 콘솔이니 전문가(덕후)다운 컬러로…
벌써 지치기 시작한다… GUI가 아니라 그런지 너무 지루하다! 아는 게 없어서 그렇다는 생각도 든다.;;
▲ 파워쉘 덕후로 예상되는 저자의 이야기처럼 메인프레임 시절(?)에 쓰였던 모노크롬 모니터가 사용된 1970년대 스타일로 화면 스타일을 변경했다.
윈도우 7 블로그에 명령 프롬프트의 컬러를 변경하는 방법을 4년 전에 올렸었는데 그게 생각나는 시점.
▲ 글쎄, 색감이 그렇게 좋아 보이진 않지만… 왠지 눈이 편할 것 같네…?
▲ PowerShell ISE에서는 내가 좋아하는 Calibri 글꼴로 설정했다. 14포인트 이상의 크기가 되어야 잘 보이는 것 같다.
▲ 테마 기능도 있으니 참고하면 좋다.
※ Server Core 버전에서는 ISE가 지원되지 않는다고 한다. 아직은 Core 버전은 두렵다. GUI에 기대고 싶다. 전체 서버 기능을 가늠하고 나서 Core 버전을 설치해봐야지.
ISE – intellisense는 축복!
▲ 우와! 여기서도 비주얼 스튜디오의 향기를 느낀다. MS 개발 툴은 편해서 좋아…
※ ISE 탭 완성 기능… 탭을 누르면 명령어가 자동 완성되는데, 탭을 계속 누르면 다른 명령어들로 전환되고, 쉬프트+탭을 누르면 이전 명령어가 나온다.
▲ 파일/폴더 목록을 보여주는구나!
▲ 명령어 뒤에 한 칸 띄우고 ‘-‘를 입력하면 매개 변수를 보여준다.
ISE 설정에서 주의할 점?
▲ 책을 보니 콘솔 애플리케이션에서 수평 스크롤바가 나타나지 않도록 주의하라고 되어 있었다. 실행 결과를 한눈에 정확히 확인하기 위해 창을 크게 하자.
▲ 콘솔과 ISE에서 ( ) , { } , < >, [ ]가 서로 구분되는지, ‘(작은 따옴표)와 `(백틱)이 서로 구분되는지 확인. 백틱이란 것을 이번에 처음 알았네.
기본 툴도 좋지만 역시 좋은 3rd party가 많네
3rd party app으로 PowerShell을 실행할 수 있다고 한다.
▲ PowerGUI라는 툴로 PowerShell 파일을 편집할 수 있는 것 같다. 기능에 액티브 디렉터리도 있네.(AD 관련 기능은 필요 없어서 끄고 설치했다.)
▲ 이런 새로운 세상도 있지만 일단은 기본으로 주어지는 ISE도 나에겐 충분하다.. ㅎㅎ
PowerShell Plus라는 것도 있는데… 뭔가 복잡해보인다.
이걸로 벌써 Chapter 2까지 봤네!
오늘 배울 분량은 여기까지. 슬슬 12시가 다가온다. 내일은 도움말을 살펴보자.
덧. 위 Matrix 이미지는 이 링크에서 확인 가능하다. 파워쉘 스크립트로 수행할 수 있는 모양이다.
나도 뭔가 해보자.
앍! ^_^
윈도우파워쉘로 작업스케줄러를 만들 수 있나요????? 서버가 많은데 하나하나 들어가서 작업스케줄러를 바꿨었는데,,, 너무 번거로워서요….
쉘스크립트로 할 수 있나용?? 스크립트를 만들고 배치파일 과 연결을 해서 스케줄러 액션에 넣어두면.. 나중에 각 대역마다 스케줄 시간을 변경한다고 할때, 다 가능한지 궁금합니다..
제가 생각한건…. 각 대역과 공유폴더를 하나만들어서 스케줄러 시간이 변경될 때 커멘드만 수정하면 될거 같은데..아닌가용;;;; 참고로 아예초보자………………………….
파워셀을 할려면 멀 배워야하죠,,,어떤 프로그램이랑 연동이 되는지 간단하게 설명좀 부탁드립니다,,
저도 배우는 입장 입니다만…윈도우에서 GUI로 처리되는 것이 백그라운드에서는 powershell로 처리된다고 보시면 됩니다.
!! 감사합니다.