Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

PowerShell 2.0の新機能(1)
――ファーストインプレッション

PowerShell 2.0の概要

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/12/08 14:00

 Windows 7やWindows Server 2008 R2からOSの標準機能として搭載されることになった「PowerShell 2.0」。本連載では、PowerShell 2.0で追加された新機能についてスポットを当て、その使い方について説明していきます。今回は、新しく追加された機能の概要について説明します。

目次

はじめに

 「Windows PowerShell」は、.NET Frameworkをベースとしたスクリプト&シェル環境です。2009年10月22日に発売されたWindows 7から標準でWindows PowerShell 2.0が搭載されることになりました。2006年11月に登場したPowerShell 1.0以来、約3年の歳月をかけて大幅に進歩したバージョンです。

 本連載では、PowerShell 2.0の新機能にスポットをあて、何回かに分けて紹介していきます。今回は、新機能の概要について説明します。

対象OSとインストール

 Windows PowerShell 2.0が標準搭載されているOSは、Windows 7とWindows 2008 R2です。それ以外ではWindows XP以降のOSで使用することができます。

 参考までに、ダウンロード先リンク(表1)を示しますので、必要環境に合わせてダウンロードし、インストールを行ってください。

 またWindows PowerShell 2.0はWindows PowerShell 1.0とは共存できません。最初にWindows PowerShell 1.0をアンインストールしてからインストールを行うようにしてください。

互換性

 PowerShell 2.0には下位互換性があり、PowerShell 1.0用のコマンドレット、プロバイダー、スナップイン、スクリプト、関数などを使用できます。これまでPowerShell 1.0を使用してきたユーザーは、過去の資産を活用できるため、安心して移行することができます。またこれからPowerShellを使用してみようと思っている方は、PowerShell 1.0向けに書かれた多くのリソースが役に立つことでしょう。

統合開発環境

 PowerShell 2.0では統合開発環境である「Windows PowerShell ISE」が標準で提供されています。専用の開発環境であり、スクリプトのキーワード色分け機能やデバッガも搭載しています。

 Windows PowerShell ISEの詳細については下記の別稿を参照してください。

コマンドレット

 PowerShell 1.0ではコマンドレットの数が129でしたが、PowerShell2.0では236と大幅に増えました。ここで、Get-Commandコマンドレットを使用してコマンドレットの一覧を表示してみましょう。

PS> Get-Command

 PowerShell 1.0を使用したことがある方であれば気付いたと思いますが、Get-Commandの動作が変更されました。 PowerShell 1.0では Get-Command と入力するだけで、コマンドレットの一覧を取得することができたのですが、PowerShell 2.0ではFunctionやAliasまで表示されます。

 コマンドレットのみの一覧を表示させたい場合は-CommandTypeパラメータにCmdletを指定し実行します。

PS> Get-Command -CommandType Cmdlet

 このように、コマンドレットによってはPowerShell1.0と動作が異なるものもありますので注意が必要です。

リモート処理

 PowerShell 2.0では1台または複数台のリモートコンピューターに対してコマンドを実行することができます。またTelnetのようにリモートコンピューターと対話しながらコマンドを実行することもできるようになりました。リモート処理を行うコマンドレットには表2に示すものがあります。

表2 リモート処理用コマンドレット
コマンドレット 説明
Enter-PSSession リモート コンピューターと対話型のセッションを開始する
Exit-PSSession リモート コンピューターとの対話型のセッションを終了する
Export-PSSession 別のセッションからコマンドをインポートし Windows PowerShell モジュールに保存する
Get-PSSession 現在のセッションの Windows PowerShell セッションを取得する
Import-PSSession 別のセッションのコマンドを現在のセッションにインポートする
New-PSSession ローカル コンピューターまたはリモート コンピューターへの固定接続を作成する
Remove-PSSession 1 つ以上の Windows PowerShell セッションを閉じる

 また、いくつかのコマンドレットには-ComputerNameパラメータが追加されました。これにより、コンピューター名を指定してコマンドレットを実行することができます。-ComputeNameパラメータを持つコマンドレットには表3に示すものがあります。

表3 ComputerNameパラメータを持つコマンドレット一覧
Clear-EventLog Connect-WSMan Disconnect-WSMan Enter-PSSession Get-Counter
Get-EventLog Get-HotFix Get-Process Get-PSSession Get-Service
Get-WinEvent Get-WmiObject Get-WSManInstance Invoke-Command Invoke-WmiMethod
Invoke-WSManAction Limit-EventLog New-EventLog New-PSSession New-WSManInstance
Receive-Job Register-WmiEvent Remove-EventLog Remove-PSSession Remove-WmiObject
Remove-WSManInstance Restart-Computer Set-Service Set-WmiInstance Set-WSManInstance
Show-EventLog Stop-Computer Test-Connection Test-WSMan Write-EventLog

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • HIRO(ヒロ)

    HIRO's.NETのHIROです。 とある半導体工場のSEです。 VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。 最近はBlog でPowerShellについて書いています。 2008/07/07にPowerShell from Japan!!という...

バックナンバー

連載:PowerShell 2.0の新機能
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5