いまさら聞けないPowerShell入門(後編)

Linuxユーザーも「PowerShell」を無視できない理由

PowerShellはWindowsを管理するための強力なツールであり、マスターすべき多くの理由がある。さらに、Linuxユーザーにとっても無視できない存在になるだろう。

 前編(Computer Weekly日本語版 8月16日号収録)では、「Windows PowerShell」(以下「PowerShell」)の特徴や仕組み、言語的な概要を簡単に紹介した。今回はPowerShellのパイプライン機能やリモート処理機能、そして「Linux」との関係について解説する。

オブジェクトとパイプライン

 PowerShellはオブジェクト指向言語で、コードは一見すると他のコマンドシェルと似ているかもしれないが、その使い方は独特だ。例えば「dir」と入力すると、現在のディレクトリにあるファイルの一覧が表示される。この動作は標準のWindowsコマンドシェル(そしてMS-DOS)と似ているが、全く同じというわけではない。実はPowerShellでは、dir(LinuxやUNIXに慣れている人のために説明すると、lsコマンドと同等)はGet-ChildItem(コマンドレット)のエイリアスだ。このコマンドはオブジェクトのコレクションを返す。デフォルトでは、dirの出力には各ファイルオブジェクトの4つのプロパティ(Mode、LastWriteTime、Length、Name)のみが表示される。では、CreationTimeプロパティの詳細を知りたい場合はどうすればいいのか。そもそも、そのオブジェクトにCreationTimeプロパティがあるかどうかを確認するにはどうすればいいのか。

 PowerShellオブジェクトの詳細を確認するのに使える、重要な機能が幾つかある。その1つはPowerShellパイプラインだ。パイプラインは縦棒(|)の記号で表される。これを使用すると、出力が次のコマンドレットに渡される。

 Format-Listコマンドレットは、引数に「」を指定すると、全てのプロパティを表示する。つまり「dir | format-list 」を実行すれば、CreationTimeを含む各オブジェクトの全プロパティの詳細が表示される。また、Select-Object(またはselect)コマンドレットを使用すれば、必要なプロパティの正確な情報を表示する。さらにWhere-Object(またはwhere)コマンドレットで、出力をフィルタリングすることもできる。以下のコマンドを実行すると、現在のディレクトリとそこに含まれるサブディレクトリの中にあり、サイズが100MBを超えるファイルのファイル名を表示し、指定したテキストファイルにその結果を書き込む(訳注)。

dir -r | where length -gt 100mb | select fullname, length | out-file bigfiles.txt

訳注:Windows 7にデフォルトでインストールされているPowerShell 2.0では動作しない。翻訳記事作成に際して、Windows 7にPowerShell 5.0をインストールして動作することを確認した。

リモート処理

 PowerShellのリモート処理は、リモートコンピュータ上で対話型のセッションやスクリプトを実行する機能だ。その際、リモートコンピュータ側にデスクトップの完全なイメージは必要ない。Linuxでいえば、SSHでリモートサーバを管理するのと同様だ。

印刷する
SNSでシェア

この記事の著者

関連記事

こんなメディアも見られています

TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。

無料会員登録
最新情報をいち早くチェック!

製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます(メディアごとに文章は変更)

いますぐ無料会員登録

ベンダーコンテンツ PR

From Informa TechTarget

アクセスランキング

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10

ホワイトペーパーランキング PR

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10

TechTargetジャパン SNS

X @techtarget_itmをフォロー

インフォメーション

TechTargetジャパンをフォロー