[運用]
|
|
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ジャパン
- WebサーバのSSL証明書が「正しい」か確認する (2012/2/10)
SSLに必要なサーバ証明書の取得/インストールのミスはWebサイトの信頼を失墜させかねない。証明書ベンダ提供のツールで手軽かつ確実にチェックしよう - クライアントでも利用可能になるHyper-V 3.0とは? (2012/2/9)
Windows 8では、従来のWindows Virtual PCに代わって新しくHyper-V 3.0がクライアント向けにも導入される。その概要を解説 - 第303話 ペアプロ2 (2012/2/7)
あっ、またまたいつぞやの幽霊が! …っと思ったら、何だ倉井さんかぁ…。はぁー、驚いた… - Excelで郵便番号変換ウィザードを活用する (2012/2/3)
Excelで管理している顧客名簿などで、不足している郵便番号や住所を入力するのは意外と面倒。郵便番号変換ウィザードを使えば、これらの入力が簡単になる
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
