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