■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)以外はインストール可能。