印刷用ページ       送信     
クリックして評価とフィードバックをお寄せください
 Windows PowerShell: Windows PowerSh...
Tips
Are you familiar with the Wbadmin Backup Command Line Utility? Wbadmin is the command-line counterpart to Windows Server Backup. You use Wbadmin to manage all aspects of backup configuration that you would otherwise manage in Windows Server Backup. For more info, read on. ...

Read more!

This tip shows you how to hide a share from users. Pretty sneaky stuff! ...

Read more!

When you create a new GPO in the GPMC, you are given the opportunity to base the new GPO on a starter GPO. Because the settings of the starter GPO are then imported into the new GPO, you can use a starter GPO to define the base configuration settings for a new GPO. Here are the steps you need to follow to create a starter GPO. ...

Read more!

Find out how you can use Windows Boot Performance Diagnostics to identify the source of startup performance problems and automatically fix issues. ...

Read more!

Think part of your database is missing or corrupted? Find out how you can perform a partial restore to recover the missing or corrupted data. ...

Read more!

Related Articles

Windows PowerShell のオブジェクト指向の性質によって、書式設定がどのように出力に適用されるかについて説明します。

Don Jones

TechNet Magazine June 2008

...

Read more!

グループ ポリシーは、ほぼすべての環境で使用されており、多くの環境では Windows 環境のセキュリティを確保するために依存しています。しかし、このプロセスで自動化がほとんどなされていない点には驚きます。この記事では、GPMC API と Windows PowerShell を使用して、グループ ポリシーの管理を自動化する方法を紹介します。

Darren Mar-Elia

TechNet Magazine June 2009

...

Read more!

ファイルの圧縮処理は、スクリプトで自動化するとさらに便利になります。このコラムでは、.cab ファイルを作成したり展開したりできる Windows PowerShell スクリプトをいくつかご紹介します。

Microsoft Scripting Guys

TechNet Magazine April 2009

...

Read more!

今月も引き続き、Don Jones が Windows PowerShell を使用してユーザー プロビジョニングを自動化する方法を紹介します。今回は、メールボックスが有効になっている Active Directory ユーザーを作成する関数について詳しく説明します。

Don Jones

TechNet Magazine April 2009

...

Read more!

Don Jones がフィルタ処理関数、パイプライン、カスタム オブジェクト、そしてピンポン球を使用して Windows PowerShell を理解する方法について説明します。

Don Jones

TechNet Magazine 7 月号 2008

...

Read more!

Also by this Author

Windows PowerShell の Version 1 で提供されている Active Directory の管理機能は、あまり優れているとは言えません。この記事では、アドインを使用して強力な機能を入手し、それらの機能を使用して Windows PowerShell 内で Active Directory オブジェクトを操作する方法について説明します。

Don Jones

TechNet Magazine May 2008

...

Read more!

Don Jones が 11 月号の Windows PowerShell コラムの続きとして、さらに優れたインベントリ ツールを紹介し、独自の Windows PowerShell 関数を作成するための正しいプロセスについて説明します。

Don Jones

TechNet Magazine 12 月号 2008

...

Read more!

Don Jones がフィルタ処理関数、パイプライン、カスタム オブジェクト、そしてピンポン球を使用して Windows PowerShell を理解する方法について説明します。

Don Jones

TechNet Magazine 7 月号 2008

...

Read more!

Don Jones が、4 部構成シリーズの Windows PowerShell によるユーザー プロビジョニングの自動化に関するコラムの最終回をお届けします。最終回では、ユーザーをドメイン グループに追加する方法と Active Directory の属性を変更する方法を紹介します。

Don Jones

TechNet Magazine June 2009

...

Read more!

Don Jones が Windows PowerShell ベースのインベントリ ツールをビルドする方法と、このソリューションの開発プロセスを紹介します。

Don Jones

TechNet Magazine 11 月号 2008

...

Read more!

Popular Articles

Windows Vista SP1 と Windows Server 2008 では、データ ボリュームのサポートや暗号化攻撃に対する保護の強化など、BitLocker の重要な変更点が導入されています。この記事では、Byron Hynes が、これらの新機能の概要と、サーバー上で BitLocker を使用する方法について説明します。また、BitLocker に影響する最近の一部の報道についても取り上げます。

Byron Hynes

TechNet Magazine June 2008

...

Read more!

上級開発者が製品のバグ修正を最後にチェックインすることが多い理由について Raymond Chen が説明します。

Raymond Chen

TechNet Magazine 1 月号 2009

...

Read more!

仮想化は障害復旧に大きな変化をもたらします。この記事では、マイクロソフトの仮想化プラットフォームを DR 計画に組み込む方法を説明し、Windows Server 2008 Hyper-V に関するバックアップと復元のオプションおよび考慮事項を紹介します。

Adam Fazio

TechNet Magazine October 2008

...

Read more!

この記事では、Raymond Chen がバグとエラーの歪んだ関係について解説し、プログラマは結果を出すだけでなく苦労することが重要である理由を説明します。

Raymond Chen

TechNet Magazine October 2008

...

Read more!

Hyper-V を導入すると、仮想化は IT 環境にとってさらに魅力的なソリューションになります。この記事では、現在の仮想化市場について概説し、Hyper-V によって仮想化の管理容易性、信頼性、およびセキュリティがどのように強化されるかについて説明します。

Rajiv Arunkundram

TechNet Magazine October 2008

...

Read more!

Our Blog

NAP monitors the health of specified computers when they attempt to connect to a network and includes a number of mechanisms to enforce health requirements. In this article, Geek of All Trades Greg Shields gives readers an overview of these enforcement mechanisms and, as an example, takes a closer look at setting ...

Read more!

Use Windows PowerShell to Manage Virtual Machines Here are a few examples of how you can use Windows PowerShell scripts to manage virtual machines running on a Server Core installation. Note that these scripts are presented as samples and may need to be customized to work in your environment.

Create a New ...

Read more!

Disabling an Unused Part of Group Policy Objects One way to disable a policy is to disable an unused part of the GPO. By disabling part of a policy that isn’t used, the application of GPOs and security will be faster.

Administer Windows Server 2008 Server Core from the Command Prompt ...

Read more!

In the August 2008 issue of TechNet Magazine, Paul Randal wrote an article Top Tips for Effective Database Maintenance.  It was geared toward "involuntary  DBAs" (IT pros who inadvertently wind up responsible for a SQL Server instance).  The article had a great response from our readers so Paul has written another ...

Read more!

Microsoft Forefront is designed to deliver an integrated security solution that makes it much easier to deploy and manage security across an organization’s IT infrastructure. In this, our annual security issue, we feature two articles that describe how Forefront Security protects instant messaging and e-mail.

Protect ...

Read more!

Windows PowerShell Windows PowerShell 2.0 のリモート管理の概要
Don Jones

このコラムは、Windows PowerShell のプレリリース版を基にしています。ここに記載されているすべての情報は、変更される場合があります。

Windows PowerShell 2.0 の最新の Community Technology Preview (CTP) は、お試しになりましたか。最新バージョンである CTP2 には、さらに改良されたリモート管理機能が備わっており、Windows PowerShell 2.0 の新機能について理解を深めるには今が絶好のチャンスです。このコラムを読み進める前に、CTP2 を
go.microsoft.com/fwlink/?LinkID=119707 からダウンロードしてください。
まず、いくつかの重要な点を明確にしておきましょう。CTP は、マイクロソフトが提供するベータ版公開前のコードで、私のような熱心なユーザーが、アプリケーションの次のバージョンでマイクロソフトが何を目指しているかを把握できるようになります。CTP の各マイルストーン (通称、ドロップ) は、それ以前のドロップとはまったく異なる場合があります。このような現象が起こるのは、開発チームがユーザーからフィードバックを収集し、そのフィードバックを慎重に確認して、このユーザーからのフィードバックに基づいてアプリケーションを変更するためです。このような方法を採用していることにより、CTP の利用に関して重要なメリットと注意点が生じます。
ビデオ
このビデオでは、Don Jones が Windows PowerShell 2.0 CTP2 の新しいリモート管理機能について説明しています。ぜひ、ご覧ください。

メリットは、ユーザーが CTP を使用したときに、製品に関するフィードバックを (connect.microsoft.com Web サイト経由で) 製品の開発段階で送信できるので、開発チームがフィードバックに基づいて作業できるということです。ベータ版 (さらに悪い場合はリリース候補版) がリリースされる段階まで待っていると、ユーザーのフィードバックを組み込むことは非常に難しくなります。CTP の提供中はあらゆる問題が発生する可能性がありますが、開発チームは必要に応じて広範囲にわたる大幅な変更を行うことができます。
このため、CTP は運用環境では使用できないという注意点があります。もちろん、Windows PowerShell™ 2.0 CTP2 は、これまで提供された CTP の中で最も安定したプレリリース コードの 1 つですが、次の CTP ドロップはまったく異なるアプリケーションになる可能性があることを覚えておいてください。そのため、次のバージョンでは最初からやり直すことが必要になる可能性があるので、CTP2 に依存しないでください。
CTP は、Windows PowerShell 1.0 と共存させる形でインストールできない点に注意してください。理想的な環境は、利用可能なすべての機能を有効にするために、システムに Microsoft® .NET Framework 3.5 がインストールされている状態です。.NET Framework 3.5 がインストールされていないと、一部の機能が制限されます。
また、CTP は初期段階のコードなので、マイクロソフトでは今のところ最新のオペレーティング システム (つまり、Windows Vista® と Windows Server® 2008) で動作するアプリケーションを最重要視しています。現時点での OS の互換性は、最終的にリリースされるコードで予想される OS の互換性を示すものではありません。下位バージョンへの移植については、開発サイクルの後半で対処します。

2 種類のリモート処理
通常、リモート管理では、ファンインおよびファンアウトという 2 種類のリモート処理が行われます。ファンイン リモート処理では、複数の管理者が 1 台のサーバーに対して Secure Shell (SSH) 接続を確立します。Windows PowerShell は、区分化された安全な方法でこのような接続を確立できるように設計されています。ですから、たとえば、Exchange Server のホスティング サービスを提供している企業では、サーバーの管理者アクセス権を顧客に与えることができます。ファンイン リモート処理を使用すると、リモート サーバーにインストールされた Windows PowerShell のコピーに、リモートから対話形式で安全にアクセスできます (この機能は Windows PowerShell 2.0 のみで使用できます)。
ファンアウト リモート処理は、リモート サーバー群全体に一連のコマンドを同時に発行する場合に使用します。コマンドは、ワークステーションからサーバー群に対して同時に "ファンアウト" されます。各サーバーでコマンドが実行され、Windows PowerShell オブジェクト形式の結果がワークステーションに返されるので、それらの結果を確認して対応できます。Windows PowerShell では、Windows® Management Instrumentation (WMI) と Windows リモート管理 (WinRM) というファンアウト リモート処理の 2 つの主要なテクノロジをサポートしています。これらのテクノロジは、当初は Windows Server 2008 に同梱されていましたが、Windows PowerShell 2.0 CTP で更新されました。

同期と非同期
実は、Windows PowerShell 1.0 にも、WMI に関連付けられたいくつかの基本的なファンアウト機能が備わっていました。たとえば、次のように簡単にコンピュータ名の配列を作成し、各コンピュータの WMI クラスを取得することができました。
$names = @("server1","server2","server2")
Get-WmiObject Win32_OperatingSystem 
    –computer $names
Windows PowerShell 1.0 では WMI メソッドを一括で実行する方法が提供されていなかったので、コンピュータを再起動するなどのメソッドを実行するには、もう少し作業が必要でした。しかし、Windows PowerShell 2.0 CTP では Invoke-WmiMethod コマンドレットが導入されたため、次のようなコードを記述すれば済むようになりました。
$names = @("server1","server2","server2")
Get-WmiObject Win32_OperatingSystem     –computer $names | `
 Invoke-WmiMethod Reboot
ただし、この技法には問題があります。この技法は同期的です。つまり、一度に 1 台のコンピュータにしか接続できないので、各コンピュータでの処理が完了しないと他のコマンドを実行できません。ただし、この CTP では、このようなコマンドをバックグラウンドで実行できるバックグラウンド ジョブという新しい概念が導入されました。この概念はきわめて単純なので、次のように AsJob パラメータを追加するだけで WMI コマンドをバックグラウンドで実行できます。
$names = @("server1","server2","server2")
Get-WmiObject Win32_OperatingSystem     –computer $names -asjob
実行後のジョブの状態は Get-PSJob を、ジョブの最終結果は Receive-PSJob を実行して確認できます (ジョブ管理の詳細については、今後のコラムで詳しく説明します)。ただし、Invoke-Command コマンドレットを使用すると、次のようにさらに優れた方法でバックグラウンドでコマンドを実行できます。
$command = { Get-WmiObject     Win32_OperatingSystem }
$names = @("server1","server2","server2")
Invoke-Command –command $command     –computer $names –asjob
このコマンドを実行すると、指定した各コンピュータに Get-WmiObject コマンドが発行され、発行されたコマンドは各コンピュータのローカルで実行されます。通常、Get-WmiObject コマンドは、WMI リモート プロシージャ コール (RPC) 接続に依存しなくても高速に実行されますが、Invoke-Command コマンドレットでは、既定でポート 80 または 443 を使用する WinRM が使用されます。これらのポートを使用すると、簡単にファイアウォールを操作することが可能で、ポートは完全に構成できます。また、Invoke-Command コマンドレットでは、代替の資格情報と調整用の追加パラメータもサポートしているので、何百台ものコンピュータを対象としながら、同時に実行するコンピュータを数台に制限することができます。このため、過密状態や過剰な負荷を回避できます。

再利用可能な実行空間
特定の一連のコンピュータを複数回リモートで管理する予定がある場合は、単純なコンピュータ名の一覧ではなく、実行空間を使用することをお勧めします。Windows PowerShell の実行空間は、単なるシェルのエンジンのインスタンスです。これは、シェル コンソール ウィンドウとしてコンピュータのローカルで実行している場合も、リモート コンピュータのバックグラウンドで実行している場合も同様です。リモートの実行空間は、次のように簡単に開始できます。
$names = @("server1","server2","server2")
New-RunSpace –computer $names
実行空間でも WinRM が使用されるので、既定でポート 80 (–UseSSL パラメータを指定した場合は 443) が使用されます。また、実行空間では、代替の資格情報なども使用できます。次のように、結果の実行空間オブジェクトを取得したら、Invoke-Command コマンドレットに渡すことができます。すると、Windows PowerShell によって、これらの実行空間が存在するコンピュータにコマンドが発行されます。
$command = { Get-WmiObject     Win32_OperatingSystem }
$rs = Get-Runspace
Invoke-Command –command $command     –runspace $rs –asjob
この方法を使用すると、シェルが起動している間は実行空間がアクティブなままなので、開始した実行空間を再利用してさらにコマンドを実行できるというメリットがあります。

ファンイン リモート処理
実行空間は、ファンイン リモート処理でも重要です。たとえば、図 1 は、リモート コンピュータで実行空間を作成し、その実行空間への参照を取得して、Push-Runspace コマンドレットを使用して実行空間をアクティブにしたことを示しています。この時点では、リモート コンピュータでは、SSH や他のリモート シェル ユーティリティの場合と同様にコマンドを実行していました。 Pop-Runspace コマンドレットを実行すると、元のローカルの実行空間に戻ります。シェル プロンプトにより、いつでも自分の現在地を追跡できます。
図 1 実行空間を使用したリモート コンピュータでのコマンドの実行 (画像をクリックすると拡大表示されます)
実際に実行した一連のコマンドは、下記のとおりです。
PS C:\>new-runspace -computer     "WIN-YFZXQMHXAWM"
PS C:\>$server2 = get-runspace -sessionid 2
PS C:\>push-runspace $server2
[win-yfzxqmhxawm]: PS C:\Windows\System32>    pop-runspace
PS C:\>
複数の管理者が 1 台のサーバーでリモートの実行空間を対話形式で同時に開くことができるため、この技法はファンインと呼ばれます。つまり、管理者は各自のワークステーションからサーバーに "ファンイン" します。Windows PowerShell 2.0 の新しいセキュリティ モデルにより、各管理者は、作成できるシェルとコマンドレットが制限されるので、グローバルな変更を行うことができず、各自のシェルの範囲に制限されます (このような新しいセキュリティ技法により、.NET Framework 対象の言語でなんらかのカスタム ソフトウェア開発を行うことが必要になります。Windows PowerShell コラムでは、これについては取り上げませんが、このような機能が存在することを覚えておくと役に立ちます)。

Windows PowerShell 2.0 の革新的なアプリケーション
Windows PowerShell 2.0 CTP には、すばらしい一連の新機能が用意されています。個人的な意見ですが、リモート処理は革新的なアプリケーションです。ほぼすべての環境の各管理者が、リモート処理のメリットを享受できます。
これらの機能について理解して、ぜひ製品チームまで提案をお寄せください。グループ ポリシーで WinRM の既定のポートを管理する必要がある場合、コマンドレットの動作が異なる場合、パフォーマンスの問題が発生した場合、WinRM の構成が難しい場合などの事象が発生した際は、connect.microsoft.com に提案を送るか、私を含む MVP 受賞者とフィードバックを共有して、製品開発にかかわることができます (私に連絡を取りたい場合は、ScriptingAnswers.com のフォーラムにフィードバックをお寄せください)。ぜひ、製品開発に関与して、次世代の Windows PowerShell の革新的なアプリケーションの構築をサポートしてください。
今月のコマンドレット : Select-Object
「Get-Service | ConvertTo-HTML | Out-File Services.htm」を実行してみてください。コマンドレットの実行が完了したら、Web ブラウザで結果の HTML ファイルを確認してください。膨大な量の情報が表示されていると思います。必要な情報を選択して、もう少し情報量を削減する方法があればいいのにとお考えでしょう。まさにこの処理を実行できるのが Select-Object コマンドレットです。たとえば、サービス名とサービスの現在の状態を示す一覧のみが必要だとします。その場合は、「Get-Service | Select Name,Status | ConvertTo-HTML | Out-File Services.htm」というコマンドを実行して必要な情報のみを取得できます。
ただし、Select-Object コマンドレットを使用すると、元のオブジェクト (ここでは、サービス) が破棄され、指定したプロパティのみを含むカスタム オブジェクト (文字どおり PSCustom という種類のオブジェクト) が生成されることに注意する必要があります。Select-Object コマンドレットを実行すると元のオブジェクトの機能にアクセスできなくなるので、このコマンドレットは、できるだけパイプラインの末尾近くで実行し、できる限り元のオブジェクトを使用して作業するのが望ましいでしょう。

Don Jones は『Windows PowerShell v2.0: TFM』の共著者で、ScriptingAnswers.com の Special Forces クラスルーム トレーニング (scriptinganswers.com/training.asp) でトレーニングの講師も務めています。連絡先は jeepdon@mac.com (英語のみ) です。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved. 許可なしに一部または全体を複製することは禁止されています。
Page view tracker