PowerShell V2 と IIS PowerShell スナップインによるリモート管理
環境 :
Windows Server 2008 R2 (RC)
こんにちは。
つぎの尻切れトンボデモは、さいごにデモした PowerShell V2 と IIS PS スナップイン (Snap-In) です。デモで失敗して禁断のファイアウォールフルオープンでごまかした設定は、なぜかホテル戻ってから環境もどして実施したところ、ちゃんと動きました。。。(そんなもんですね、世の中は。。。)
以前、実は こちらのブログ で IIS マネージャの UI を使ったリモート管理について記載していますが、この続きとして本投稿を記載しておきます。(無論、従来通り、appcmd でもできますが、新しい PS Snap-In は、意味的にも非常にわかりやすいです !)
- ちょっと UI 編
- 完全にコマンド編
接続される側のマシン (サーバーコア) 側の設定
まず、接続される側のマシンでは、「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 example\Administrator
# パスワード入力のダイアログが表示されるので、入力してください . . . (省略)
# 下記で、どの役割 / 機能が 無効 / 有効 か確認します
# (なぜなんでしょうね . . . 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:\sites\Default Web Site\demoweb"
# リモートマシンのセッションを抜けます
exit-pssession