labunix's blog

labunixのラボUnix

Windows2012Serverをサンドバッグにする為の下見

■Windows2012Serverをサンドバッグにする為の下見。
 ADにもなれず、仮想ホストにもなれない以上、
 大したことが出来ないことが分かって来たので。。。

■Windows2012サーバのPowerShell。
 ゲストOSにはHyper-Vは入らない。

> get-windowsfeature Hyper-V | format-list | findstr "Name Installed"
Name                      : Hyper-V
DisplayName               : Hyper-V
Installed                 : False
AdditionalInfo            : {MajorVersion, MinorVersion, NumericId, InstallName}

■以下に見るとおり、GMOのデスクトップクラウドのホストOSはHyper-Vである。
 MSによると「without Hyper-V」だけがサポートされている。

 仮想デスクトップをHyper-Vで商品化
 Windowsアプリケーションのクラウド型開発環境を提供
 http://special.nikkeibp.co.jp/ts/article/aba0/131610/

 仮想マシンとゲスト オペレーティング システムについて
 http://technet.microsoft.com/ja-jp/library/cc794868(v=ws.10).aspxPowerShellのデフォルトはShift-JISです。
 出力のデフォルトがUTF-8だったり、ASCIIだったりする統一性の無いコマンド群は
 MSの囲い込み手法のひとつで、わざとなんだと信じます。(天然だったらダサいw)

 「デフォルト」が何を指しているか分からない人には全く向いてませんのであしからず。

PS> $sysenc =  [System.Text.Encoding]::Default
PS> $sysenc.EncodingName
日本語 (シフト JIS)

■インストールされている役割の一覧の出力
 大きく分けて4つのステップがある。

 Step1 サーバマネージャをインポートして、
    CSVのデフォルトはASCIIなので、システムのデフォルトを指定、
    test.csvに出力。

 Step2 CSVの行検索、Installedを含む行のみ取り込んで変数strに格納。

 Step3 Splitは区切り文字をキーに列を行に変換、
    カンマ区切りで2行目がDisplayName、
    ダブルクォーテーション区切りで2行目が内容、変数str2に格納。

 Step4 Select-Stringの-notmatchオプションでDisplayNameという見出しを除外。
     ※Select-StringのデフォルトエンコーディングはUTF-8です。

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

ファイル サービスおよび記憶域サービス
記憶域サービス
.NET Framework 3.5 Features
.NET Framework 3.5 (.NET 2.0 および 3.0 を含む)
.NET Framework 4.5 Features
.NET Framework 4.5
ASP.NET 4.5
WCF サービス
TCP ポート共有
Media Foundation
Windows PowerShell
Windows PowerShell 3.0
Windows PowerShell 2.0 エンジン
Windows PowerShell ISE
WoW64 サポート
インクと手書きサービス
バックグラウンド インテリジェント転送サービス (BITS)
コンパクト サーバー
ユーザー インターフェイスとインフラストラクチャ
グラフィック管理ツールとインフラストラクチャ
サーバー グラフィック シェル
デスクトップ エクスペリエンス
高品質な Windows オーディオ ビデオ エクスペリエンス

■ちなみに配列の「0」番目だと以下。
 splitが区切り文字をキーに列から行に変換した後の
 剰余のn行から拾うのがちょっと面白い。

 面白いというのは、awkだと列のままや行のまま扱えるので額面どおりの褒め方では無いことは、
 行列の入れ替えを行いたい場合を考えれば分かると思う。

PS> $str -replace '"','' | %{$_.split(",")[0]} | tee -Variable str2
Name
FileAndStorage-Services
Storage-Services
NET-Framework-Features
NET-Framework-Core
NET-Framework-45-Features
NET-Framework-45-Core
NET-Framework-45-ASPNET
NET-WCF-Services45
NET-WCF-TCP-PortSharing45
Server-Media-Foundation
PowerShellRoot
PowerShell
PowerShell-V2
PowerShell-ISE
WoW64-Support
InkAndHandwritingServices
BITS
BITS-Compact-Server
User-Interfaces-Infra
Server-Gui-Mgmt-Infra
Server-Gui-Shell
Desktop-Experience
qWave

■インストールされていない役割、機能の一覧。
 PowerShellだとDepth=1を拾うのが面倒だったので、コマンドプロンプトで。
 うーん、要らないな~w。。。サーバとしては、Web、メール、DNSかな。。。
 どうでも良いけど、NTPは未だにVersion3なんだw。。。

> powershell get-windowsfeature > test.log
> findstr /V "[X]" test.log | find /V " [" | find "[" | find /N "["
[1][ ] Active Directory ライトウェイト ディレクトリ サ...  ADLDS                          Available
[2][ ] DHCP サーバー                                       DHCP                           Available
[3][ ] DNS サーバー                                        DNS                            Available
[4][ ] Hyper-V                                             Hyper-V                        Available
[5][ ] Web サーバー (IIS)                                  Web-Server                     Available
[6][ ] Windows Server Update Services                      UpdateServices                 Available
[7][ ] アプリケーション サーバー                           Application-Server             Available
[8][ ] BitLocker ドライブ暗号化                            BitLocker                      Available
[9][ ] BitLocker ネットワーク ロック解除                   BitLocker-NetworkUnlock        Available
[10][ ] BranchCache                                         BranchCache                    Available
[11][ ] HTTP プロキシを経由した RPC                         RPC-over-HTTP-Proxy            Available
[12][ ] LPR ポート モニター                                 LPR-Port-Monitor               Available
[13][ ] Management OData IIS 拡張機能                       ManagementOdata                Available
[14][ ] NFS クライアント                                    NFS-Client                     Available
[15][ ] RAS 接続マネージャー管理キット (CMAK)               CMAK                           Available
[16][ ] RDC (Remote Differential Compression)               RDC                            Available
[17][ ] Simple TCP/IP Services                              Simple-TCPIP                   Available
[18][ ] SMTP サーバー                                       SMTP-Server                    Available
[19][ ] Telnet クライアント                                 Telnet-Client                  Available
[20][ ] Telnet サーバー                                     Telnet-Server                  Available
[21][ ] TFTP クライアント                                   TFTP-Client                    Available
[22][ ] Windows Identity Foundation 3.5                     Windows-Identity-Fou...        Available
[23][ ] Windows Internal Database                           Windows-Internal-Dat...        Available
[24][ ] Windows Server バックアップ                         Windows-Server-Backup          Available
[25][ ] Windows Server 移行ツール                           Migration                      Available
[26][ ] Windows TIFF IFilter                                Windows-TIFF-IFilter           Available
[27][ ] Windows フィードバック転送                          WFF                            Available
[28][ ] Windows 生体認証フレームワーク                      Biometric-Framework            Available
[29][ ] WinRM IIS 拡張機能                                  WinRM-IIS-Ext                  Available
[30][ ] WINS サーバー                                       WINS                           Available
[31][ ] インターネット印刷クライアント                      Internet-Print-Client          Available
[32][ ] グループ ポリシーの管理                             GPMC                           Available
[33][ ] データ センター ブリッジング                        Data-Center-Bridging           Available
[34][ ] ネットワーク負荷分散                                NLB                            Available
[35][ ] ピア名解決プロトコル                                PNRP                           Available
[36][ ] メッセージ キュー                                   MSMQ                           Available
[37][ ] リモート サーバー管理ツール                         RSAT                           Available
[38][ ] 拡張記憶域                                          EnhancedStorage                Available