[運用]
|
|
PowerShell関連のドキュメントやヘルプを読み進めていくと頻繁に登場するのが、この「ドライブ」というキーワードだ。ドライブとは、ファイル・システムにおけるドライブと同様、PowerShell上のコマンドレットからアクセス可能な「データの保管場所」のことである。ファイル・システムのドライブからフォルダやファイルにアクセスできるのと同様に、(例えば)レジストリドライブからはレジストリ項目に、環境変数ドライブからは環境変数に、それぞれアクセスできるというわけだ。
デフォルトで、どのようなドライブが公開されているのかを確認するには、Get-PSDriveコマンドレットを使用する。
このように、おなじみのファイル・システムのドライブ(C:ドライブやD:ドライブ)のほかに、Alias:ドライブ(エイリアス)、HKCU:ドライブ(レジストリのHKEY_CURRENT_USER)、Env:ドライブ(環境変数)など、さまざまなドライブが用意されていることが確認できる。なお、.NET Frameworkによるプログラミングの知識が必要になるため、本稿では割愛するが、これらドライブはユーザーが自前で追加することも可能だ。従って、例えばPowerShell上からデータベースにアクセスするようなドライブを追加することも可能だ。このための具体的なコードは以下のページでも紹介されている。難解ではあるが、興味のある方は一読をお勧めする。
- Demo SQL Provider Code[英語](Windows PowerShell開発チームのブログ)
これらドライブを切り替えることで、1つのコマンドレットでさまざまなデータストアにアクセスできるのも、PowerShellの大きな特徴の1つだ。
例えば、先ほどのGet-ChildItemコマンドレットも、デフォルトではカレント・ドライブがファイル・システムのドライブとなっているために、たまたまカレント・フォルダのファイル一覧を表示していたにすぎないわけで、ドライブを変更しさえすれば、レジストリや環境変数、エイリアスなどの情報にアクセスすることも可能だ。例えば、以下はGet-ChildItemコマンドレットで、現在定義されている環境変数を一覧表示する例だ。
※定義済みの環境変数を一覧表示する |
Set-Locationは、従来のコマンド・プロンプトにおけるcdコマンドに相当するコマンドレットだ。つまり、ここではカレントのドライブを、デフォルトのCドライブからEnv(環境変数)ドライブに切り替えているというわけだ。実際、ここではプロンプトの表示を省略せずに掲載しているが、もともとの「PS C:\Documents and Settings\Yamada >」から「PS Env:\>」に変更されていることが確認できるだろう。あとは、Get-ChildItemコマンドを実行することで、カレント・ドライブ配下の情報として、ここでは環境変数名と対応する値の一覧を表示することができる。
同様に、レジストリのHKEY_CURRENT_USER配下にアクセスしたいならば、まったく同じ要領で以下のように記述すればよい。
PS > Set-Location HKCU: |
ここでは、Get-ChildItem/Set-Locationコマンドレットを一例に説明したが、もちろん、ほかの主要なコマンドレットでもドライブを切り替えることで、同一のコマンドレットで異なるデータストアにアクセスすることが可能になる。
| [コラム]ドライバの実体は「プロバイダ」 PowerShellのドキュメントを眺めていると、ドライバと並んで、よく登場するのが「プロバイダ」というキーワードだ。もっとも、またもや新しい概念かと身構える必要はない。プロバイダとは、ドライバの実装だと思っていただければよいだろう。ドライバの機能を実際に提供している.NET Frameworkベースのクラス・ライブラリが、プロバイダなのである。 先ほど、Get-PSDriveコマンドレット(リスト「※PowerShellで利用可能なドライブを一覧表示させる」参照)で、PowerShell標準で提供されているドライバを確認したが、その出力項目に「Provider」というプロパティが含まれているのに気付いた方もいたかもしれない。これがそれぞれのドライブに対応するプロバイダの名前となる。これを確認すると、例えばC:、D:、E:などのドライブはFileSystemプロバイダで、HKCU:、HKLM:などのドライブはRegistryプロバイダで提供されていることが確認できる。 |
■
以上、今回はPowerShellを利用するうえで知っておきたい基本的なキーワードとして、「コマンドレット」「.NETオブジェクト」「ドライバ(プロバイダ)」について紹介した。従来のコマンド・プロンプトと比べると、PowerShellはさまざまな点で進化を遂げているが、実のところ、底辺のところで押さえなければならないポイントはそれほどに多くはない。今回紹介したキーワードを確実に理解してさえいれば、あとは付属のドキュメントや、そのほかの書籍/記事などから理解を深めていくことは、それほど難しくはないはずだ。
さて、今回、対話型シェル環境としてのPowerShellについて理解したところで、後編ではPowerShellのスクリプティング実行環境としての機能を見ていく。どうぞお楽しみに。![]()
| INDEX | ||
| [運用]Windows PowerShellコマンド&スクリプティング入門(前編) | ||
| PowerShellの基本 | ||
| 1.PowerShellを始めよう | ||
| 2.PowerShellをインストールする | ||
| 3.キーワード1「コマンドレット」―PowerShellを操作する基本コマンド | ||
| 4.キーワード2「.NETオブジェクト」―コマンドレットの戻り値はオブジェクト | ||
| 5.キーワード3「ドライブ」―データソースへのアクセスを一元化する | ||
| [運用]Windows PowerShellコマンド&スクリプティング入門(後編) | ||
| PowerShellスクリプティングの第一歩 | ||
| 1.PowerShellスクリプトの基本 | ||
| 2.PowerShellの変数 | ||
| 3.PowerShellの制御構文 | ||
| 4.PowerShellの関数 | ||
| 5..NET Frameworkのクラスを利用する | ||
| Windows運用 |
ホワイトペーパー(TechTargetジャパン)
- 第207話 究極の人事システム (2010/2/9)
部長、わが人事部が開発した究極の人事評価システムがついに完成しました! これで不要な社員が一発で分かります! - WindowsTIPS (2010/2/5)
− netshコマンドでTCP/IPのパラメータを設定する
− Virtual PC 2007の共有NATで利用可能なアドレス範囲
− スタンバイ復帰でパスワード入力を要求されないように - 仮想環境でActive Directoryを利用する (2010/2/4)
仮想環境にADをインストールすれば、自由にActive Directoryドメイン・ネットワークを構築して実験できる - 第206話 バナー広告案 (2010/2/2)
いまどきWebマーケティングが不可欠なのは分かるが、強烈な競合に並べてバナーなんか出して、勝ち目はあるのか?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






