labunix's blog

labunixのラボUnix

Windows2012サーバにPowerShellでIIS8.0をインストール

■Windows2012サーバにPowerShellでIIS8.0をインストール
 システムに変更を加えるには、「管理者としてWindowsPowerShellを開く」が必要になりました。
 面倒ではありますが、これは良い機能だと思います。
 ※管理者権限が無いと「Update-Help」も出来ません。
 
■タスクバーの通知領域にWindowsUpdateの項目はなくなったのですね。
 ログイン前に右下にメッセージは出る。
 WindowsUpdateを開いて、更新しないといけない。
 WSUSで管理している場合は、更新したら以下でレポートを投げましょう。

> wuauclt /detectnow
 
■以下のエラーメッセージの通り、「Administrators」グループに所属しているユーザで、
 「管理者としてWindowsPowerShellを実行」が必要です。

PS> add-windowsfeature $str
add-windowsfeature : 対象のコンピューターに変更を加えるのに適切なユーザー権利がありません。既に対象のコンピューターの A
dministrators グループのメンバーである場合は、ユーザー アカウント制御によって適用されるセキュリティ制限が原因で変更に失
敗した可能性があります。管理者特権 ([管理者として実行]) を使用して開いた Windows PowerShell セッションで Install-Window
sFeature を実行してください。
発生場所 行:1 文字:1
+ add-windowsfeature $str
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (@{Vhd=; Credent...Name=localhost}:PSObject) [Install-WindowsFeature],
    Exception
    + FullyQualifiedErrorId : Provider_UserIsNotAdmininistrator,Microsoft.Windows.ServerManager.Commands.AddWindowsFea
   tureCommand

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
False   No             Failed         {}

> net user labunix | findstr "*"
所属しているローカル グループ        *Administrators
                                     *Remote Desktop Users
                                     *Users
所属しているグローバル グループ      *なし

■「管理者としてWindowsPowerShellを開く」で開いて、
 「Get-Help」のヘルプファイルを更新します。

PS> Update-Help

■モジュールの確認。
 フォルダは「v.1.0」ですが、他のバージョンフォルダは無いので
 MSの仕様でしょう。。。

PS> import-module servermanager
PS> get-module servermanager | format-list

Name              : servermanager
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\servermanager\ServerManager.psm1
Description       :
ModuleType        : Script
Version           : 2.0.0.0
NestedModules     : {Microsoft.Windows.ServerManager.PowerShell}
ExportedFunctions : {Disable-ServerManagerStandardUserRemoting, Enable-ServerManagerStandardUserRemoting}
ExportedCmdlets   : {Get-WindowsFeature, Install-WindowsFeature, Uninstall-WindowsFeature}
ExportedVariables :
ExportedAliases   : {Add-WindowsFeature, Remove-WindowsFeature}

■PowerShellでもコマンドプロンプトでも。。。
 最後のパイプはGowに含まれるtailでズルをします。
 組み込めるモジュールh32個あるということです。

PS> get-childitem c:\windows\system32\WindowsPowerShell\v1.0\Modules | %{$_.Name}

>dir /b C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ | findstr /N "." | tail -1
32:WindowsErrorReporting

■Webサービス関連を見ると、54もの項目があります。

PS> get-windowsfeature Web* | %{$_.Name} | findstr /N "." | tail -1
54:Web-Mgmt-Service

■一般に必要なのは以下の3つでしょう。

PS> get-windowsfeature Web* | %{$_.Name} | findstr /N "Server"
1:Web-Server
2:Web-WebServer
42:Web-Ftp-Server

PS> get-windowsfeature Web* | %{$_.Name} | findstr "Server" | tee -Variable str
Web-Server
Web-WebServer
Web-Ftp-Server

■冒頭の「add-windowsfeature」時に出た
「Install-WindowsFeature」の警告はひとまず無視します。

PS> import-module servermanager
PS> get-windowsfeature Web* | %{$_.Name} | findstr "Server" | tee -Variable str
PS> add-windowsfeature $str

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {HTTP 共通機能, 既定のドキュメント, ディレ...

■インストールが完了して再起動は不要と出ましたが、
 フリーズしたのでコントロールパネルから再起動します。

■確認方法は以下と同様。

 Windows2012Serverをサンドバッグにする為の下見
 http://labunix.hateblo.jp/entries/2013/01/04

■インストールされたのは以下。管理コンソールがありません。

PS> import-module servermanager
PS> get-windowsfeature Web* |export-csv -encoding default after.csv
PS> findstr "Installed" .\after.csv |  %{$_.split(",")[1]} | tee -Variable str
PS> $str -replace '"','' |  select-string -pattern "DisplayName" -notmatch

Web サーバー (IIS)
Web サーバー
HTTP 共通機能
HTTP エラー
ディレクトリの参照
既定のドキュメント
静的なコンテンツ
セキュリティ
要求フィルター
パフォーマンス
静的なコンテンツの圧縮
状態と診断
HTTP ログ
FTP サーバー
FTP サービス

■インストールされていない一覧から管理コンソールをインストール。
 ※WindowsPowerShellを管理者として開くから行う。

PS> findstr /V "Installed" .\after.csv |  %{$_.split(",")[0,1]} | select-string -Encoding Default -pattern "mgmt" , "管理" | tee -Variable str

"Web-Mgmt-Tools"
"管理ツール"
"Web-Mgmt-Console"
"IIS 管理コンソール"
"Web-Mgmt-Compat"
"IIS 6 管理互換"
"Web-Lgcy-Mgmt-Console"
"IIS 6 管理コンソール"
"IIS 管理スクリプトおよびツール"
"Web-Mgmt-Service"
"管理サービス"

PS> install-windowsfeature Web-Mgmt-Console

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {IIS 管理コンソール, 管理ツール}

■認証とか動的圧縮とかはとりあえずスルーして、
 telnetクライアントをインストール。

PS> get-windowsfeature Telnet*

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[ ] Telnet クライアント                                 Telnet-Client                  Available
[ ] Telnet サーバー                                     Telnet-Server                  Available

PS> install-windowsfeature Telnet-Client

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {Telnet クライアント}

■ついでにTelnetサーバもインストール。

PS> install-windowsfeature Telnet-Server

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {Telnet サーバー}

■TelnetでWebサーバの動作チェック。
 ※真っ暗な画面でノーミスで「GET / HTTP/1.0」とEnterキーを2回叩きましょう。
  画像のCSS指定「.hero」はHelloのことだと思いますが、スルーしましょう。。。

> telnet localhost 80
GET / HTTP/1.0


HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Fri, 04 Jan 2013 10:00:41 GMT
Accept-Ranges: bytes
ETag: "d5fdd55a62eacd1:0"
Server: Microsoft-IIS/8.0
Date: Fri, 04 Jan 2013 11:34:49 GMT
Connection: close
Content-Length: 1398
...

■IIS8.0で検索
 IIS6.0の管理コンソールは削除予定なので、非推奨機能となっているとのこと。

 Web サーバー (IIS) の概要
 http://technet.microsoft.com/library/hh831725.aspx

■その他Windows2012の非推奨機能

 Windows Server 2012 で削除された機能または推奨されなくなった機能
 http://technet.microsoft.com/library/hh831568.aspx

■大抵の情報は以下のリンクから辿れる。

 Windows Server 2012
 http://technet.microsoft.com/ja-jp/windowsserver/hh534429

■少なくとも設定はGUIからやりましょう。
 WindowsPowerShellを使うメリットはインストールの証跡をテキストで簡単に残せる事です。
 操作はサーバマネージャからの方が楽でしょう。
 管理コンソールを起動すると、「新しいWeb Platformコンポーネントを取得」の
 メッセージが出ます。
 ※いいえを選択しても、後から操作から選択可能です。

■Web Platform Installer4.0
 追加するコンポーネントは「Node.js」等があり、追加/削除を選択、
 インストール/アンインストールを行えます。
 実際にインストールするにはSQL Serverが前提条件。
 ウィザードに沿って進めばSQL Server Express 2008R2が自動的にインストールされるはずだが、
 「SQL Server Express 2008R2」は互換性の問題があるとのこと。
 Megelia Web Store(for IIS)以外はインストール可能。