PowerShell V2 と IIS PowerShell スナップインによるリモート管理

環境 : Windows Server 2008 R2 (RC)

こんにちは。

つぎの尻切れトンボデモは、さいごにデモした PowerShell V2 と IIS PS スナップイン (Snap-In) です。デモで失敗して禁断のファイアウォールフルオープンでごまかした設定は、なぜかホテル戻ってから環境もどして実施したところ、ちゃんと動きました。。。(そんなもんですね、世の中は。。。)

以前、実は こちらのブログ で IIS マネージャの UI を使ったリモート管理について記載していますが、この続きとして本投稿を記載しておきます。(無論、従来通り、appcmd でもできますが、新しい PS Snap-In は、意味的にも非常にわかりやすいです !)

  1. ちょっと UI 編
  2. 完全にコマンド編

接続される側のマシン (サーバーコア) 側の設定 

まず、接続される側のマシンでは、「Windows Remote Management」のポートを空け、PowerShell のリモート接続を許可しておきます。(PowerShell を起動して、以下を実行します。)

# Windows ファイアウォールのポートを空ける
netsh advfirewall firewall set rule group="Windows Remote Management" new enable=yes

# PowerShell のリモーティングを有効にする
enable-psremoting 

接続するクライアント側からの操作 

ということで、あとは、リモートから接続して管理します。コード/実行モジュールの配置やデバッグなどは、上記リンクに記載している方法と同様に、リモートデバッグなどを使用してください。

# リモートマシンのセッションを作成して、このセッションに入ります !
enter-pssession demomachine1 -credential exampleAdministrator

# パスワード入力のダイアログが表示されるので、入力してください . . . (省略)

# 下記で、どの役割 / 機能が 無効 / 有効 か確認します
# (なぜなんでしょうね . . . dism のパイプ処理がなぜか文字化けするため、/english にしておましょう)
dism /online /get-features /format:table /english | findstr /i  iis

# IIS の Web サーバーロールを有効にします
dism /online /enable-feature /featurename:IIS-WebServerRole

# では、いよいよ、IIS の PS プロバイダーを設定します !
set-executionpolicy -executionpolicy unrestricted
import-module WebAdministration

# デモでご紹介したとおり、以下の通り入力すると、IIS のプロバイダーが入っているのが確認できます
get-psprovider

# 上記のプロバイダーのおかげで、IIS はドライブのように扱えます !
cd IIS:
dir

[出力結果]
Name
----
AppPools
Sites
SslBindings

dir IIS:sites

Name                   ID      State    . . . . .
----                        --       -----
Default Web Site   1       Started   . . . . .

# 準備として、デモ用のディレクトリと HTML ファイルを作ってみましょう
mkdir c:demo
cd c:demo
echo test > test.htm

###########
# 下記の通り、非常に "意味的に" IISへの操作ができるんです ! (一部紹介)
###########

# 仮想ディレクトリ作成 !
new-webvirtualdirectory -site "Default Web Site" -name demoweb -physicalpath c:demo

# 上記の仮想ディレクトリを「Webアプリケーション」として設定 !
convertto-webapplication -applicationpool "DefaultAppPool" "IIS:sitesDefault Web Sitedemoweb"

# リモートマシンのセッションを抜けます
exit-pssession

 

2 thoughts on “PowerShell V2 と IIS PowerShell スナップインによるリモート管理

  1. デモ崎さんこんにちは。
    いくつかご参考まで
    ・リモート接続を受け付ける設定は Set-WSManQuickConfig が早くて便利です。
    ・dism | findstr の出力が文字化けするのは、Shift JIS か何かで出力されているためのようです。明示的に Unicode での出力を指定すると大丈夫でした。
    cmd /U /C "dism … | findstr /i iis"
    ・役割の追加は ServerManager のコマンドレットも用意されています。
    Import-Module ServerManager
    場合によってはこちらの方が短くてすむかもです。

    Like

  2. お疲れ様です。デモ崎です。
    田辺さん、上記フォローありがとうございます。
    Server Manager や AD のコマンドレットも、いずれ時間をとって説明したいですね。。。(開発者が見ても、かなり魅力的です)
    東京の方は、もしかしたら、05/30 に実施予定(中止)であった「スクリプトを使用した Windows Server 管理の自動化」のセミナー (講師 : 奥主、安納、田辺) がまたいつか実施される "かも" しれませんので、TF セミナーを Watch しておくと良いかもしれません。。。(超人気セミナーの2回目です。前回はインフルエンザで中止となりました。)
    http://www.microsoft.com/japan/powerpro/TF/seminar.mspx

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s