コマンドレットの探し方
前提
- マックアドレスを調べるコマンドレットを探してみる。
手順
Get-Commandで関係しそうなコマンドレットをある程度絞り込む
PS brazil> Get-Command -Verb get -Noun *net*
CommandType Name Version Source
----------- ---- ------- ------
Function Get-BCNetworkConfiguration 1.0.0.0 BranchCache
Function Get-DtcNetworkSetting 1.0.0.0 MsDtc
Function Get-HnsNetwork 1.0.0.0 HostNetworkingService
Function Get-Net6to4Configuration 1.0.0.0 NetworkTransition
Function Get-NetAdapter 2.0.0.0 NetAdapter
Function Get-NetAdapterAdvancedProperty 2.0.0.0 NetAdapter
Function Get-NetAdapterBinding 2.0.0.0 NetAdapter
Function Get-NetAdapterChecksumOffload 2.0.0.0 NetAdapter
(略)
Cmdlet Get-VMNetworkAdapterRoutingDomainMapping 2.0.0.0 Hyper-V
Cmdlet Get-VMNetworkAdapterTeamMapping 2.0.0.0 Hyper-V
Cmdlet Get-VMNetworkAdapterVlan 2.0.0.0 Hyper-V
- 情報を取得するから、-VerbはGetで間違いない。マックアドレスだから、-Nounにnetが入ってそうだろうから、*net*を指定。
PS> Get-Command -Verb get -Noun *net* -Module NetAdapter
CommandType Name Version Source
----------- ---- ------- ------
Function Get-NetAdapter 2.0.0.0 NetAdapter
Function Get-NetAdapterAdvancedProperty 2.0.0.0 NetAdapter
Function Get-NetAdapterBinding 2.0.0.0 NetAdapter
(略)
- 関係なさそうなモジュールは除外していく(上のHyper-Vなど)、するとNetAdapterモジュールのがたくさんあるし、Nameもそれっぽい。
- -ModuleにNetAdapterを指定して、再度検索する。
PS> $list = Get-Command -Verb get -Noun *net* -Module NetAdapter
- 検索結果のコマンドレット一覧をいったん$listに入れる。
絞り込んだコマンドレット一覧のシノプシスを読む
PS> $list | Get-Help | select name, synopsis
Name Synopsis
---- --------
Get-NetAdapter Gets the basic network adapter properties.
Get-NetAdapterAdvancedProperty Gets the advanced properties for a network adapter.
Get-NetAdapterBinding Gets a list of bindings for a network adapter.
(略)
- シノプシスを読むと、Get-NetAdapterがそれっぽいことがわかる。
PS> Get-NetAdapter | gm -Name macaddress
TypeName: Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter
Name MemberType Definition
---- ---------- ----------
MacAddress ScriptProperty System.Object MacAddress {get=$out = ""...k adapter.
- Get-NetAdapterのメンバーにmacaddressがないか調べると、まさにある。