* コマンドレットの探し方 [#z606f7ca]

** 前提 [#k7cb4fb8]
** 命題 [#k7cb4fb8]

- マックアドレスを調べるコマンドレットを探してみる。

** 手順 [#fc7b1ee6]

*** 1. Get-Commandで関係しそうなコマンドレットをある程度絞り込む [#p314ca68]

 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に入れる。

*** 2. Get-Helpで絞り込んだコマンドレット一覧のシノプシスを読む [#a33c01f1]

 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がそれっぽいことがわかる。

*** 3. Get-Memberであたりをつけたコマンドレットのメンバーを調べる [#b32a27aa]

 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がないか調べると、まさにある。

** 結論 [#a0f9638a]

- Get-Command、Get-Help、Get-Memberを使う。
- コマンドレットのVerbとNounを意識すると見つけやすい。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS