Cmdlet ネットワークとシステム管理

<

PowerShellはローカルファイル、プロセス、サービスを管理できるだけでなく、強力なネットワーク機能とシステムレベルの操作能力も備えています。IPの確認、ネットワーク接続のテスト、システム情報の取得、ユーザーアカウントの管理など、PowerShellは豊富で統一されたCmdletを提供します。

このセクションでは、ネットワークとシステム管理で最も一般的に使用されるコマンドを習得し、「コマンドライン使用者」から「システム管理の達人」へステップアップする手助けをします。


一、ネットワーク管理関連 Cmdlet

ネットワーク接続をテストする:Test-Connection

類似pingコマンドですが、出力はオブジェクトであり、より多くの操作をサポートします。

Test-Connection -ComputerName www.baidu.com -Count 4

クイックバージョン(PowerShell 7+):

Test-NetConnection www.baidu.com

ローカルマシンのIP構成を取得する:Get-NetIPAddress

Get-NetIPAddress

IPv4アドレスのみを表示する:

Get-NetIPAddress -AddressFamily IPv4

旧コマンドの互換方式でも可能です:

ipconfig

または、より汎用的なWMIコマンド:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.IPEnabled }

現在のネットワーク接続状態を取得する:Get-NetTCPConnection

すべてのTCP接続とポート状態を一覧表示する(類似netstat):

Get-NetTCPConnection

特定のポートの接続状況を確認する:

Get-NetTCPConnection -LocalPort 80

ホスト名とDNSキャッシュの管理

ローカルマシンのホスト名を取得する:

$env:COMPUTERNAME

DNSキャッシュをクリアする:

Clear-DnsClientCache

二、システム情報の照会


オペレーティングシステム情報を取得する:Get-ComputerInfo

Get-ComputerInfo

主要フィールドをフィルタリングする(例:システムバージョン、CPU):

Get-ComputerInfo | Select-Object OSName, WindowsVersion, CsProcessors

システムの起動時間を取得する

(Get-CimInstance -Class Win32_OperatingSystem).LastBootUpTime

ディスク情報を取得する:Get-Volume

Get-Volume

次も使用できます:

Get-PSDrive -PSProvider FileSystem

または:

Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, VolumeName, Size, FreeSpace

BIOSとハードウェア情報を取得する

Get-CimInstance -ClassName Win32_BIOS
Get-CimInstance -ClassName Win32_ComputerSystem

三、ユーザーとアカウント管理(ローカル)

現在のユーザー情報を取得する

[System.Security.Principal.WindowsIdentity]::GetCurrent().Name

または:

$env:USERNAME

ローカルユーザー一覧を表示する(Windowsローカルアカウント)

Get-LocalUser

ユーザーを無効化する:

Disable-LocalUser -Name "TestUser"

ユーザーを有効化する:

Enable-LocalUser -Name "TestUser"

注意:管理者として実行する必要があります。

新しいユーザーを追加する(ローカル)

New-LocalUser -Name "NewUser" -Password (Read-Host -AsSecureString "输入密码")

四、システム設定操作

システムのタイムゾーンを設定する

Set-TimeZone -Id "China Standard Time"

サポートされているタイムゾーンを表示する:

Get-TimeZone -ListAvailable

システムのホスト名を設定する(再起動後に有効)

Rename-Computer -NewName "MyNewPC" -Restart

システム時刻を設定する(管理者権限が必要)

Set-Date -Date "2025-07-22 10:30"

五、実戦シナリオ例


例1:ローカルマシンから複数のターゲットホストへの接続をテストする

"192.168.1.1", "8.8.8.8", "www.baidu.com" | ForEach-Object {
    Test-Connection -ComputerName $_ -Count 2
}

例2:現在開いているTCPポート(状態がListening)を一覧表示する

Get-NetTCPConnection | Where-Object { $_.State -eq "Listen" }

例3:システム情報レポートを生成する

$report = Get-ComputerInfo | Select-Object OSName, OSArchitecture, CsName, CsProcessors, WindowsVersion
$report | Out-File -FilePath "C:\SystemReport.txt"

六、まとめ

PowerShellは、従来のコマンドラインツールをはるかに超える強力なネットワークとシステム管理機能を提供します:

  • ネットワーク操作は、IPとポートのテスト、監視、構成をサポートします
  • システム情報コマンドは、診断レポートの生成と自動監査に便利です
  • ローカルアカウント管理は、小規模システムやワークグループ環境に適しています
  • すべてのコマンドはオブジェクト指向で、柔軟に組み合わせられ、スクリプト化可能です
その他の拡張