Help us understand the problem. What is going on with this article?

PowerShellでHello World

More than 1 year has passed since last update.

インフラ勉強会 Advent Calendar 2018 :star2: 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版を起動します。
PS01.png

メッセージボックスで”Hello World”

たった2行です。簡単すぎてすみません。

helloWorld

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

PS02.png

1行目:Add-Type -Assembly

PowerShellでは.NET Frameworkのライブラリを使用することができますが、数が膨大なので読み込まないと使えない機能があります。ここではWindowsのメッセージボックスを使うために、.NETアセンブリをメモリに読み込む処理を行います。

2行目:[System.Windows.Forms.MessageBox]::Show

MessageBoxクラスは 静的クラス なので、以下のように記述します。

# [クラス名]::メソッド名

参考:静的なクラスとメソッドの使用

Showメソッドのパラメーター

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

パラメーター
text 文字列
title 文字列
MessageBoxButtons OK, OKCancel など *1
MessageBoxIcon Information, Warning など *1
MessageBoxDefaultButton Button1, Button2 など *1

*1:省略可

ダブルクリックで実行できるように、ファイルに保存

コマンドを白いエディタの部分に書いて保存します(拡張子は.ps1)。
PS03.png

ダブルクリックすると…あれ?スクリプトなのにメモ帳が開く??

PowerShellの実行ポリシー

PowerShellはデフォルトだと全てのスクリプトの実行が禁止されています。バッチファイルのようにダブルクリックで実行するにはレジストリを変更する必要があるのですが、常に実行を許可するのはセキュリティ上よくないです。実行するスクリプトだけ一時的に許可する方法は、以下の記事がとても参考になります。

PowerShellのExecutionPolicyのスコープとかについて詳しく -Qiita

ショートカットを作ってダブルクリックで実行

Hello.ps1 のショートカットを作成し、プロパティのリンク先を以下のように変更、作業フォルダーは空欄にします。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File Hello.ps1

aru01.png

実行時の大きさを最小化しておくと、黒い画面が開かなくてよい感じになりました!

参考リンク

a_o_i_k_o
アウトプットの練習用です。記事の内容に間違いがあればご指摘ください。
infra-workshop
インフラ技術を勉強したい人たちのためのオンライン勉強会です
https://wp.infra-workshop.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした