2017年1月2日月曜日

PowerShellでWindowsのシステム情報やネットワーク・ディスクの情報を確認する方法

Windowsは昔からGUIベースのOSということもあって、コマンドでの設定確認は限界があるものと感じていた。しかし、Windowsもバージョンが上がり、PowerShellが搭載されるようになってから、ほぼすべての設定項目はPowerShellで確認できるようになった。

これを知っていると効率よくサーバー構築や設計書作成ができると感じたので以下に使えそうな設定確認コマンドをまとめてみる。なお、確認はWindows Server 2012 (無印)で実施した。

システム系

Windowsの役割と機能

GUIではサーバーマネージャーから確認できるが、コマンドでも確認可能。なお、Where-Object文を削除すれば、インストールされていない役割と機能を含めて一覧で表示される。

Get-WindowsFeature | Where-Object {$_.InstallState -eq "Installed"}
------------------------------
Display Name                                            Name                       Install State
------------                                            ----                       -------------
[X] Hyper-V                                             Hyper-V                        Installed
[X] ファイル サービスおよび記憶域サービス               FileAndStorage-Services        Installed
    [X] ファイル サービスおよび iSCSI サービス          File-Services                  Installed
        [X] ファイル サーバー                           FS-FileServer                  Installed
        [X] iSCSI ターゲット サーバー                   FS-iSCSITarget-Server          Installed
    [X] 記憶域サービス                                  Storage-Services               Installed
[X] .NET Framework 3.5 Features                         NET-Framework-Features         Installed
    [X] .NET Framework 3.5 (.NET 2.0 および 3.0 を含む) NET-Framework-Core             Installed
[X] .NET Framework 4.5 Features                         NET-Framework-45-Fea...        Installed
    [X] .NET Framework 4.5                              NET-Framework-45-Core          Installed
    [X] WCF サービス                                    NET-WCF-Services45             Installed
        [X] TCP ポート共有                              NET-WCF-TCP-PortShar...        Installed
[X] Media Foundation                                    Server-Media-Foundation        Installed
[X] Windows PowerShell                                  PowerShellRoot                 Installed
    [X] Windows PowerShell 3.0                          PowerShell                     Installed
    [X] Windows PowerShell 2.0 エンジン                 PowerShell-V2                  Installed
    [X] Windows PowerShell ISE                          PowerShell-ISE                 Installed
[X] WoW64 サポート                                      WoW64-Support                  Installed
[X] インクと手書きサービス                              InkAndHandwritingSer...        Installed
[X] グループ ポリシーの管理                             GPMC                           Installed
[X] マルチパス I/O                                      Multipath-IO                   Installed
[X] ユーザー インターフェイスとインフラストラクチャ     User-Interfaces-Infra          Installed
    [X] グラフィック管理ツールとインフラストラクチャ    Server-Gui-Mgmt-Infra          Installed
    [X] サーバー グラフィック シェル                    Server-Gui-Shell               Installed
    [X] デスクトップ エクスペリエンス                   Desktop-Experience             Installed
[X] リモート サーバー管理ツール                         RSAT                           Installed
    [X] 役割管理ツール                                  RSAT-Role-Tools                Installed
        [X] Hyper-V 管理ツール                          RSAT-Hyper-V-Tools             Installed
            [X] Hyper-V GUI 管理ツール                  Hyper-V-Tools                  Installed
            [X] Windows PowerShell 用 Hyper-V モジュ... Hyper-V-PowerShell             Installed
------------------------------

サービス

[管理ツール]→[サービス]で確認できる内容と同じ。

get-wmiobject win32_service | ft Name, StartMode, State, Status -AutoSize
------------------------------
Name                                         StartMode State   Status

----                                         --------- -----   ------
AeLookupSvc                                  Manual    Stopped OK
ALG                                          Manual    Stopped OK
AllUserInstallAgent                          Manual    Stopped OK
AppIDSvc                                     Manual    Stopped OK
Appinfo                                      Manual    Running OK
AppMgmt                                      Manual    Stopped OK
AudioEndpointBuilder                         Manual    Stopped OK
Audiosrv                                     Manual    Stopped OK
AxInstSV                                     Manual    Stopped OK
BFE                                          Auto      Running OK
BITS                                         Manual    Running OK

~以下略~

------------------------------

インストールプログラム

[コントロールパネル]→[プログラムと機能]で確認できる内容と同じ。

Get-WmiObject -Class Win32_Product | ft Name,Vendor,Version -AutoSize
------------------------------
Name                                                                        Vendor                Version
----                                                                        ------                -------
VMware Tools                                                                VMware, Inc.          10.0.9.3917699
Microsoft Security Client                                                   Microsoft Corporation 4.10.0207.0
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.4148              Microsoft Corporation 9.0.30729.4148
Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022                   Microsoft Corporation 9.0.21022

~以下略~
------------------------------

適用HotFix

Windowsの重要な更新やセキュリティアップデートの確認。

Get-HotFix
------------------------------
Source        Description      HotFixID      InstalledBy          InstalledOn
------        -----------      --------      -----------          -----------
T1115W212     Security Update  KB2727528     NT AUTHORITY\SYSTEM  2016/12/23 0:00:00
T1115W212     Security Update  KB2736693     NT AUTHORITY\SYSTEM  2016/08/22 0:00:00
T1115W212     Security Update  KB2742614     T1115W212\Adminis... 2016/08/20 0:00:00
T1115W212     Security Update  KB2742616     NT AUTHORITY\SYSTEM  2016/08/22 0:00:00
T1115W212     Update           KB2756872     NT AUTHORITY\SYSTEM  2016/08/22 0:00:00
T1115W212     Update           KB2758246     NT AUTHORITY\SYSTEM  2016/08/22 0:00:00
T1115W212     Update           KB2761094     NT AUTHORITY\SYSTEM  2016/08/22 0:00:00
T1115W212     Update           KB2764870     NT AUTHORITY\SYSTEM  2016/08/22 0:00:00
T1115W212     Update           KB2769034     T1115W212\Adminis... 2016/08/20 0:00:00
T1115W212     Update           KB2769165     T1115W212\Adminis... 2016/08/20 0:00:00
T1115W212     Update           KB2769166     NT AUTHORITY\SYSTEM  2016/08/22 0:00:00
T1115W212     Security Update  KB2770660     T1115W212\Adminis... 2016/08/20 0:00:00

~以下略~
------------------------------

コントロールパネル一覧

コントロールパネルに表示される項目の一覧。

Get-ControlPanelItem
------------------------------
Name                          CanonicalName                 Category                      Description
----                          -------------                 --------                      -----------
アクション センター           Microsoft.ActionCenter        {システムとセキュリティ}      最近のメッセージを確認し、...
管理ツール                    Microsoft.AdministrativeTools {システムとセキュリティ}      コンピューターの管理に関す...
自動再生                      Microsoft.AutoPlay            {ハードウェア}                CD、DVD およびデバイスの既...
色の管理                      Microsoft.ColorManagement     {すべてのコントロール パネ... 画面、スキャナーおよびプリ...
資格情報マネージャー          Microsoft.CredentialManager   {ユーザー アカウント}         Windows 資格情報を管理しま...
日付と時刻                    Microsoft.DateAndTime         {時計、言語、および地域}      日付、時刻とタイム ゾーン...
既定のプログラム              Microsoft.DefaultPrograms     {プログラム}                  Windows 上で、Web 閲覧、写...
デバイス マネージャー         Microsoft.DeviceManager       {すべてのコントロール パネ... ハードウェアの設定の表示と...
デバイスとプリンター          Microsoft.DevicesAndPrinters  {ハードウェア}                デバイス、プリンター、印刷...
ディスプレイ                  Microsoft.Display             {デスクトップのカスタマイ...  ディスプレイ設定を変更し、...
コンピューターの簡単操作セ... Microsoft.EaseOfAccessCenter  {コンピューターの簡単操作,... お使いのコンピューターを使...
フォルダー オプション         Microsoft.FolderOptions       {デスクトップのカスタマイズ}  ファイルやフォルダーの表示...
フォント                      Microsoft.Fonts               {デスクトップのカスタマイズ}  コンピューターのフォントを...
インターネット オプション     Microsoft.InternetOptions     {ネットワークとインターネ...  インターネットの表示と接続...
iSCSI イニシエーター          Microsoft.iSCSIInitiator      {すべてのコントロール パネ... リモート iSCSI ターゲット...
キーボード                    Microsoft.Keyboard            {すべてのコントロール パネ... カーソルの点滅速度や文字の...
言語                          Microsoft.Language            {時計、言語、および地域}      地域と言語の設定をカスタマ...
マウス                        Microsoft.Mouse               {すべてのコントロール パネ... ボタンの構成、ダブルクリッ...
MPIO                          Microsoft.MPIOConfiguration   {すべてのコントロール パネ... マルチパスのデバイスの MPI...
ネットワークと共有センター    Microsoft.NetworkAndSharin... {ネットワークとインターネ...  ネットワークの状態の確認、...
通知領域アイコン              Microsoft.NotificationArea... {すべてのコントロール パネ... 通知領域に表示するアイコン...
個人設定                      Microsoft.Personalization     {デスクトップのカスタマイズ}  このコンピューターの画像、...
電話とモデム                  Microsoft.PhoneAndModem       {すべてのコントロール パネ... 電話のダイヤル情報とモデム...
電源オプション                Microsoft.PowerOptions        {ハードウェア, システムと...  コンピューターの電源管理の...
プログラムと機能              Microsoft.ProgramsAndFeatures {プログラム}                  コンピューター上のプログラ...
地域                          Microsoft.RegionAndLanguage   {時計、言語、および地域}      言語、数値、時刻および日付...
RemoteApp とデスクトップ接続  Microsoft.RemoteAppAndDesk... {すべてのコントロール パネ... RemoteApp とデスクトップ接...
サウンド                      Microsoft.Sound               {ハードウェア}                オーディオ デバイスを構成...
同期センター                  Microsoft.SyncCenter          {すべてのコントロール パネ... このコンピューターとネット...
システム                      Microsoft.System              {システムとセキュリティ}      コンピューターの情報を表示...
タスク バー                   Microsoft.Taskbar             {デスクトップのカスタマイズ}  表示される項目の種類、項目...
音声合成                      Microsoft.TextToSpeech        {すべてのコントロール パネ... 音声合成と音声認識 (インス...
トラブルシューティング        Microsoft.Troubleshooting     {すべてのコントロール パネ... 一般的なコンピューターの問...
ユーザー アカウント           Microsoft.UserAccounts        {ユーザー アカウント}         このコンピューターを共有す...
Windows ファイアウォール      Microsoft.WindowsFirewall     {システムとセキュリティ}      ファイアウォール セキュリ...
Windows Update                Microsoft.WindowsUpdate       {システムとセキュリティ}      ソフトウェアやドライバーの...
Flash Player (32 ビット)                                    {システムとセキュリティ}      Flash Player の設定を管理
メール (32 ビット)                                          {ユーザー アカウント}         Microsoft Outlook プロファ...
------------------------------

イベントログ

とりあえず最近の100個のイベントログを確認するには以下の通り。なお、LogNameにはSystem、Application、Securityなどを選択する。

Get-EventLog -LogName system -Newest 100
------------------------------
   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
  116156 12 30 10:05   Information Service Control M...   1073748860 DPMRA サービスは 停止 状態に移行しました。
  116155 12 30 10:00   Information Service Control M...   1073748860 Device Setup Manager サービスは 停止 状態に移行...
  116154 12 30 10:00   Information Service Control M...   1073748860 Microsoft Software Shadow Copy Provider サービ...
  116153 12 30 10:00   Information Service Control M...   1073748860 DPMRA サービスは 実行中 状態に移行しました。
  116152 12 30 09:59   Information Service Control M...   1073748860 Windows Modules Installer サービスは 停止 状態...

~以下略~
------------------------------

Informationのログを省略し、エラーや警告ログだけを見たいのであれば、以下の通りにする。

Get-EventLog -LogName system -Newest 100 | Where-Object {$_.EntryType -match "Err|Warn"}
------------------------------
   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
  116150 12 30 09:58   Error       UmrdpService                 1111 プリンター Microsoft Print to PDF に必要なドラ...
  116149 12 30 09:58   Error       UmrdpService                 1111 プリンター HP ePrint + JetAdvantage に必要なド...
  116148 12 30 09:58   Error       UmrdpService                 1111 プリンター Foxit PhantomPDF Printer に必要なド...
  116114 12 30 09:05   Error       Ntfs                           55 ボリューム C: のファイル システム構造で破損が検...
  116113 12 30 09:05   Warning     Microsoft-Windows...           98 ソース 'Microsoft-Windows-Ntfs' のイベント ID '...

~以下略~
------------------------------

ネットワーク系

ネットワークアダプター一覧

Up、Downの状況やMacアドレスなどの確認。

Get-NetAdapter
------------------------------
Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet1                 Intel(R) 82574L Gigabit Network Co...#2      13 Up           00-0C-29-AA-90-B7         1 Gbps
vEthernet (vSwitch1)      Hyper-V 仮想イーサネット アダプター #2       16 Up           00-0C-29-AA-90-B7        10 Gbps
------------------------------

ネットワークアダプターのプロパティ

[ネットワークアダプターのプロパティ]にて確認できる各種パラメータの確認。

Get-NetAdapterBinding
------------------------------
Name                           DisplayName                                        ComponentID          Enabled
----                           -----------                                        -----------          -------
Ethernet1                      Hyper-V 拡張可能仮想スイッチ                       vms_pp               True
Ethernet1                      Link-Layer Topology Discovery Responder            ms_rspndr            False
Ethernet1                      Link-Layer Topology Discovery Mapper I/O Driver    ms_lltdio            False
Ethernet1                      Microsoft Network Adapter Multiplexor Protocol     ms_implat            False
Ethernet1                      Microsoft ネットワーク用クライアント               ms_msclient          False
Ethernet1                      Windows ネットワーク仮想化フィルター ドライバー    ms_netwnv            False
Ethernet1                      QoS パケット スケジューラ                          ms_pacer             False
Ethernet1                      Microsoft ネットワーク用ファイルとプリンター共有   ms_server            False
Ethernet1                      インターネット プロトコル バージョン 6 (TCP/IPv6)  ms_tcpip6            False
Ethernet1                      インターネット プロトコル バージョン 4 (TCP/IPv4)  ms_tcpip             False
vEthernet (vSwitch1)           Hyper-V 拡張可能仮想スイッチ                       vms_pp               False
vEthernet (vSwitch1)           Link-Layer Topology Discovery Responder            ms_rspndr            True
vEthernet (vSwitch1)           Link-Layer Topology Discovery Mapper I/O Driver    ms_lltdio            True
vEthernet (vSwitch1)           Microsoft Network Adapter Multiplexor Protocol     ms_implat            False
vEthernet (vSwitch1)           Microsoft ネットワーク用クライアント               ms_msclient          True
vEthernet (vSwitch1)           Windows ネットワーク仮想化フィルター ドライバー    ms_netwnv            False
vEthernet (vSwitch1)           QoS パケット スケジューラ                          ms_pacer             True
vEthernet (vSwitch1)           Microsoft ネットワーク用ファイルとプリンター共有   ms_server            True
vEthernet (vSwitch1)           インターネット プロトコル バージョン 6 (TCP/IPv6)  ms_tcpip6            False
vEthernet (vSwitch1)           インターネット プロトコル バージョン 4 (TCP/IPv4)  ms_tcpip             True
------------------------------


ネットワークアダプタの構成の詳細

[ネットワークアダプターのプロパティ]→[構成]→[詳細]にて確認できる各種パラメータの確認。

Get-NetAdapterAdvancedProperty
------------------------------
Name                      DisplayName                    DisplayValue                   RegistryKeyword RegistryValue
----                      -----------                    ------------                   --------------- -------------
Ethernet1                 Flow Control                   Rx & Tx Enabled                *FlowControl    {3}
Ethernet1                 Interrupt Moderation           Enabled                        *InterruptMo... {1}
Ethernet1                 IPv4 Checksum Offload          Rx & Tx Enabled                *IPChecksumO... {3}
Ethernet1                 Jumbo Packet                   Disabled                       *JumboPacket    {1514}
Ethernet1                 Large Send Offload V2 (IPv4)   Enabled                        *LsoV2IPv4      {1}
Ethernet1                 Large Send Offload V2 (IPv6)   Enabled                        *LsoV2IPv6      {1}
Ethernet1                 RSS プロセッサの最大数         8                              *MaxRssProce... {8}
Ethernet1                 優先する NUMA ノード           システムの既定値               *NumaNodeId     {65535}
Ethernet1                 RSS キューの最大数             1 Queue                        *NumRssQueues   {1}
Ethernet1                 Priority & VLAN                Priority & VLAN Enabled        *PriorityVLA... {3}
Ethernet1                 Receive Buffers                256                            *ReceiveBuffers {256}
Ethernet1                 Receive Side Scaling           Enabled                        *RSS            {1}
Ethernet1                 RSS 基本プロセッサ数           0                              *RssBaseProc... {0}
Ethernet1                 Speed & Duplex                 Auto Negotiation               *SpeedDuplex    {0}
Ethernet1                 TCP Checksum Offload (IPv4)    Rx & Tx Enabled                *TCPChecksum... {3}
Ethernet1                 TCP Checksum Offload (IPv6)    Rx & Tx Enabled                *TCPChecksum... {3}
Ethernet1                 Transmit Buffers               512                            *TransmitBuf... {512}
Ethernet1                 UDP Checksum Offload (IPv4)    Rx & Tx Enabled                *UDPChecksum... {3}
Ethernet1                 UDP Checksum Offload (IPv6)    Rx & Tx Enabled                *UDPChecksum... {3}
Ethernet1                 Adaptive Inter-Frame Spacing   Disabled                       AdaptiveIFS     {0}
Ethernet1                 Interrupt Moderation Rate      Adaptive                       ITR             {65535}
Ethernet1                 Log Link State Event           Enabled                        LogLinkState... {51}
Ethernet1                 Gigabit Master Slave Mode      Auto Detect                    MasterSlave     {0}
Ethernet1                 Locally Administered Address   --                             NetworkAddress  {--}
Ethernet1                 Wait for Link                  Auto Detect                    WaitAutoNegC... {2}
vEthernet (vSwitch1)      IPv4 Checksum Offload          Rx & Tx Enabled                *IPChecksumO... {3}
vEthernet (vSwitch1)      IPsec Offload                  Auth Header and ESP Enabled    *IPsecOffloadV2 {3}
vEthernet (vSwitch1)      Jumbo Packet                   無効                           *JumboPacket    {1514}
vEthernet (vSwitch1)      Large Send Offload Version ... 有効                           *LsoV2IPv4      {1}
vEthernet (vSwitch1)      Large Send Offload Version ... 有効                           *LsoV2IPv6      {1}
vEthernet (vSwitch1)      TCP Checksum Offload (IPv4)    Rx & Tx Enabled                *TCPChecksum... {3}
vEthernet (vSwitch1)      TCP Checksum Offload (IPv6)    Rx & Tx Enabled                *TCPChecksum... {3}
vEthernet (vSwitch1)      UDP Checksum Offload (IPv4)    Rx Enabled                     *UDPChecksum... {2}
vEthernet (vSwitch1)      UDP Checksum Offload (IPv6)    Rx Enabled                     *UDPChecksum... {2}
vEthernet (vSwitch1)      ネットワーク アドレス          --                             NetworkAddress  {--}
------------------------------

ディスク系

物理ディスク

[サーバーマネージャー]→[ファイルサービスと記憶域サービス]→[ディスク]で確認できる内容と同じ。

Get-Disk
------------------------------
Number Friendly Name                            OperationalStatus                    Total Size Partition Style
------ -------------                            -----------------                    ---------- ---------------
0      VMware Virtual disk SCSI Disk Device     Online                                    50 GB MBR
1      MSFT Virtual HD  Multi-Path Disk Device  Offline 
------------------------------

ボリューム

[サーバーマネージャー]→[ファイルサービスと記憶域サービス]→[ボリューム]で確認できる内容と同じ。

Get-Volume
------------------------------
DriveLetter       FileSystemLabel  FileSystem       DriveType        HealthStatus        SizeRemaining             Size
-----------       ---------------  ----------       ---------        ------------        -------------             ----
                  システムで予約済み        NTFS             Fixed            Healthy                   94.2 MB           350 MB
C                                  NTFS             Fixed            Healthy                  15.16 GB         49.66 GB
A                                                   Removable        Healthy                       0 B              0 B
D                                                   CD-ROM           Healthy                       0 B              0 B
------------------------------