PowerShell에서 Hello World

인프라 공부회 Advent Calendar 2018 6일째의 기사입니다!

자기소개



aochan이라고 합니다.
비IT 기업의 헬프 데스크 & Windows 클라이언트 PC의 병아리 작성·관리를 하고 있습니다. 전직한 날에 손님처에 혼자 퍼져, 미경험으로 기술적인 것을 배울 기회가 없다(인계 자료도 없다!) 현장에 배속되어 절망하고 있던 곳을 인프라 공부회에 구해진 사람입니다.

인프라 공부회는 좋다 (선전)



오프라인 이벤트에서 "PowerShell 와카라나이에서 세션을 해 주었으면 한다"고 말하면, 격강 엔지니어씨가 곧바로 온라인의 인프라 공부회에서 세션해 주셨습니다.
초보자 친화적인 인프라 공부회. 비영리 커뮤니티인데 이 속도감과 기술력. 고마워요.
헬프 데스크이므로, 그다지 전문성은 필요로 하지 않는 직종입니다만, 단지 즐겁고 참가하고 있는 걸이가 있습니다. 인프라 엔지니어가 아니더라도 매우 공부하는 커뮤니티입니다.

주제 : PowerShell에서 "Hello World"를 표시하자



인프라 공부회의 「PowerShell 일 시작」세션에서 배운 내용의 아웃풋입니다.

사용환경



Windows 10 Pro ver.1809
PowerShell ver.5.1.17763.134

먼저 PowerShell 편집기를 시작합니다.



PowerShell의 개발 환경은 Windows에 표준 장비되어 있습니다. 스스로 구축할 필요가 없기 때문에 락 친입니다.
Windows PowerShell ISE를 시작합니다. 64bit판 OS라면, 32bit판과 64bit판의 양쪽 모두가 인스톨 되고 있으므로, 아무것도 없으면 64bit판을 기동합니다.


메시지 상자에서 "Hello World"



그냥 두 줄입니다. 너무 쉬워서 미안해.

helloWorld

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("Hello World!!", "ハロー")



1행: Add-Type -Assembly



PowerShell에서는 .NET Framework 라이브러리를 사용할 수 있지만 수가 엄청나기 때문에 로드하지 않으면 사용할 수 없는 기능이 있습니다. 여기서는 Windows 메시지 상자를 사용하기 위해 .NET 어셈블리를 메모리로 로드하는 프로세스를 수행합니다.

두 번째 줄: [System.Windows.Forms.MessageBox]::Show



MessageBox 클래스는 정적 클래스이므로 다음과 같이 설명합니다.
# [クラス名]::メソッド名

참고 : 정적 클래스 및 메서드 사용

Show 메소드의 매개변수



Show(text, title, MessageBoxButtons, MessageBoxIcon, MessageBoxDefaultButton)


매개변수



텍스트
문자열

title
문자열

MessageBoxButtons
OK, OKCancel 등 *1

MessageBoxIcon
Information, Warning 등 *1

MessageBoxDefaultButton
Button1, Button2 등 *1


*1: 선택사항

더블 클릭으로 실행할 수 있도록 파일에 저장



명령을 흰색 편집기 부분에 쓰고 저장합니다 (확장자는 .ps1).


더블 클릭하면 ... 어라? 스크립트인데 메모장이 열리는가? ?

PowerShell 실행 정책



PowerShell은 기본값으로 모든 스크립트의 실행이 금지됩니다. 배치 파일과 같이 더블 클릭으로 실행하려면 레지스트리를 변경해야 하지만 항상 실행을 허용하는 것은 보안상 좋지 않습니다. 실행하는 스크립트만 일시적으로 허가하는 방법은, 이하의 기사가 매우 참고가 됩니다.

PowerShell ExecutionPolicy 범위에 대해 자세히 알아보기 - Qiita

바로 가기를 만들고 더블 클릭으로 실행



Hello.ps1의 바로 가기를 만들고 속성의 링크 대상을 다음과 같이 변경하여 작업 폴더를 비워 둡니다.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File Hello.ps1


런타임의 크기를 최소화해두면 검은 화면이 열리지 않아도 좋은 느낌이 되었습니다!

참고 링크


  • PowerShell의 Add-Type 및 [Reflection.Assembly]
  • 업무 개선! Windows PowerShell 시작
  • PowerShell에서 대화 상자를 표시하고 입력 결과 얻기

  • Windows 인프라 관리자에게의 길 > 돌출 관리자에게의 추천 기사
    ※조금 낡은 기사입니다만, 알기 쉽고 정리되어 있어 추천입니다.
  • 좋은 웹페이지 즐겨찾기