Trainocate Japan, Ltd.

Win Win Windows
ホーム > Win Win Windows > クラウド ; 運用管理 > クラウドでもPowerShell

Win Win Windowsコラム
クラウドでもPowerShell
執筆:横山哲也

今どきのオンラインゲームは、クラウド上で構築されることが当たり前になりました(歩きスマホはやめましょう)。社内にあるのが常識だった基幹システムをクラウド上で構築する事例も増えています。開発テストマシンも、クラウドなら簡単にその場で調達できます。


クラウドコンピューティングサービスを使う場合、インターネット経由で管理ツールを使う必要があります。この時、Webベースの管理ツールとコマンドの両方が提供されるのが普通です。また、プログラムから呼び出し可能なAPIも備えているのが一般的です。


Microsoft Azureの管理ツールも例外ではなく、以下の3種類+1機能が提供されます。


このうち、システム管理者が最もよく使うのは、Web管理ポータルでしょう。教育コース「Microsoft AzureによるITインフラの拡張」ではWebポータルだけを使います。


しかし、Microsoft Azureの機能の一部はWebポータルでは操作できず、PowerShellを使う必要があります。そのため、教育コース「Microsoft Azureによるサイト間ネットワークの構築」では、Web管理ポータルとPowerShellコマンドを併用しています。Microsoftの公式カリキュラム「Microsoft Azure インフラストラクチャ ソリューションの実装(#23533)」も同様です。


なお、Azureコマンドは、主に非Windowsユーザーによって使われています。PowerShellが使えるのであれば、PowerShellをおすすめします。


PowerShellの最大の利点は「何度でも同じ作業を繰り返すことができる」ということでしょう。システム開発中、テストマシンを何台も用意する必要があるかもしれません。Web管理ポータルで同じことを何度も繰り返すのは苦痛ですし、間違える確率も上がります。


同じことを何度も繰り返し実行するという機械的な作業は機械にやらせましょう


クラウドに限らず、PowerShellは、Windowsのあらゆるところで使われはじめています。


Active Directoryの新機能も、多くはPowerShellから実装されます。たとえば、パスワードポリシーをグローバルグループやユーザーごとに変更できる「きめ細かなパスワードポリシー」は、当初(Windows Server 2008)ADSIEDITツールのみでのサポートでしたが、Windows Server 2008 R2でPowerShellから設定可能になり、GUIで管理できるようになったのはWindows Server 2012からです。


Windows Server 2008 R2から利用可能な「Active Directoryのごみ箱」機能も、GUIが使えるようになったのはWindows Server 2012からです。


PowerShellには、コンマ区切りフォーマット(CSV)ファイルを簡単に扱う機能もあるため、事前に作っておいた表に基づいて一括処理することも簡単です(後述します)。


PowerShellさえ知っていればWindowsのあらゆる操作ができますし(たぶん)、逆にPowerShellを知らなければできない操作もあります(確実)。


PowerShellには、TABキーでコマンドやコマンドオプションを補完する機能があるので、コマンドを正確に覚えていなくても困らないという利点もあります。


たとえば、現在使用中のコンピュータをシャットダウンするときは「Stop-Computer」コマンドレットを使います(PowerShellのコマンドを「コマンドレット」と呼びます)。初期状態のWindowsの場合、「sto[TAB]」と打てば、自動的に「Stop-Computer」と補完されます(stoで始まるコマンドが他に追加されている場合は、TABキーを押すたびにコマンドが切り替わります)。Windows Server 2012が出た当初、[スタート]ボタンがなかった頃は、こうしてシャットダウンしていたものです。


ちなみに、このTABキーで補完する機能は、ネットワーク機器などで広く採用されていますが、もとをたどればTENEXというOSに由来するそうです(Wikipedia:TOPS-20内のTENEX)。


「せっかくのWindowsなのにコマンドなんて」と思わず、ぜひPowerShellにチャレンジしてください。


クラウドエンジニアファーストステップ応援キャンペーン」では、特定コースの受講者に対して、アンケートを回答していただくことでモバイルバッテリチャージャーをプレゼントしています。ちょうど欲しいと思っていた方もいらっしゃるでしょう。

このキャンペーン「クラウドエンジニア」となっていることから分かるように、クラウドと仮想化に関連した教育コースの受講者が対象ですが、ネットワークの基礎コースの一部や、WindowsのIT基盤に欠かせないActive Directoryなども対象になっています。


そして、もちろんPowerShellのコース「Windows PowerShell コマンド・スクリプト入門 ~Windows Server 2012 R2対応~」も対象です。


Windowsを使っているみなさま、オンプレミスでもクラウドでも、PowerShellを学習してシステム管理の効率を上げましょう。そして、余った時間は、モバイルバッテリチャージャーを持って外に出てみてはいかがでしょう。ただし、歩きスマホやめましょう(大事なことなのでもう一度書きました)。

 

【CSVの扱い方】

PowerShellでCSVファイルを扱う方法はいくつかありますが、最も簡単な方法は以下の通りです。

  1. 以下のルールに従ってCSVファイルを作成
    ・UNICODE形式で作成
    ・先頭行は列名の一覧
  2. Import-CSVコマンドレットでファイル丸ごと読み込み
  3. 読み込んだ変数を配列として使用

例を挙げましょう。

以下のようなCSVファイルを作成し、userlist.csvとします。1行目が見出しの一覧になります。

last,first,id
横山,哲也,yokoyama
谷口,愛男,tani
松前,律夫,matsumae
岡山,香保里,okayama

以下のPowerShellコマンドレットを実行し、変数listに代入します。

$list = import-csv .\userlist.csv

これで、list[0]からlist[3]の4行で構成される配列ができます。見出し行は配列には含まれませんが、自動的に属性名として割り当てられます。たとえばlist[0].idの内容はyokoyamaとなります。また、以下のようなプログラムを書けば、読み込んだCSVファイルの内容から、last(名字)とfirst(名前)の一覧表を表示できます。

foreach ($i in $list) {
   
Write-Host $i.last  $i.first
}

 

【関連記事】

CAT-1
▲子猫は何にでも興味を持ちます。たぶんPowerShellにも。

[クラウド運用管理][2016年8月10日配信]

 

※Microsoft、Windowsは、米国Microsoft社の登録商標です。
※Oracleは、米国オラクル・コーポレーションおよびその子会社、関連会社の米国およびその他の国における登録商標です。
※PMI、PMP、PMBOKは、プロジェクトマネジメント協会(Project Management Institute, Inc.)の登録商標です。
※ITIL®はAXELOS Limited の登録商標です。
※American Management Association は、米国アメリカン マネジメント アソシエーションの登録商標です。
※BOOT CAMP、NEW TRAIN、Glovalueはトレノケート株式会社の登録商標です。
※その他このサイトに掲載された社名、製品名は、各社の商標、または登録商標です。

© Trainocate Japan, Ltd. 2008-2017, All Rights Reserved.
  • Get ADOBE READER