Seriál Windows PowerShell v3 – práce se síťovým adaptérem (část 32.)

Seriál Windows PowerShell v3 – práce se síťovým adaptérem (část 32.)

  • Comments 2
  • Likes

Pokud se učíte jakýkoli nový program, je vždy nejlepší používat jej co nejčastěji. To samé platí i pro PowerShell. Proto jsem již hodně dlouho nepustil cmd.exe a vše spouštím právě z konzole PowerShellu. Dalším krokem je nahrazení nativních příkazů Windows jejich cmdlety a funkcemi. Typickým případem jsou dva nejčastější: ping a ipconfig. Ping má svůj protějšek v cmdletu Test-Connection a ipconfig ve funkci Get-NetIPConfiguration. Dnes si povíme právě o funkcích sloužících k práci se síťovým rozhraním.

Modul NetTCPIP

Ukažme si dostupné funkce.

PS C:\> Get-Command -Module NetTCPIP

CommandType  Name                        ModuleName
-----------  ----                        ----------
Function     Get-NetIPAddress            NetTCPIP
Function     Get-NetIPConfiguration      NetTCPIP
Function     Get-NetIPInterface          NetTCPIP
Function     Get-NetIPv4Protocol         NetTCPIP
Function     Get-NetIPv6Protocol         NetTCPIP
Function     Get-NetNeighbor             NetTCPIP
Function     Get-NetOffloadGlobalSetting NetTCPIP
Function     Get-NetPrefixPolicy         NetTCPIP
Function     Get-NetRoute                NetTCPIP
Function     Get-NetTCPConnection        NetTCPIP
Function     Get-NetTCPSetting           NetTCPIP
Function     Get-NetTransportFilter      NetTCPIP
Function     Get-NetUDPEndpoint          NetTCPIP
Function     Get-NetUDPSetting           NetTCPIP
Function     New-NetIPAddress            NetTCPIP
Function     New-NetNeighbor             NetTCPIP
Function     New-NetRoute                NetTCPIP
Function     New-NetTransportFilter      NetTCPIP
Function     Remove-NetIPAddress         NetTCPIP
Function     Remove-NetNeighbor          NetTCPIP
Function     Remove-NetRoute             NetTCPIP
Function     Remove-NetTransportFilter   NetTCPIP
Function     Set-NetIPAddress            NetTCPIP
Function     Set-NetIPInterface          NetTCPIP
Function     Set-NetIPv4Protocol         NetTCPIP
Function     Set-NetIPv6Protocol         NetTCPIP
Function     Set-NetNeighbor             NetTCPIP
Function     Set-NetOffloadGlobalSetting NetTCPIP
Function     Set-NetRoute                NetTCPIP
Function     Set-NetTCPSetting           NetTCPIP
Function     Set-NetUDPSetting           NetTCPIP

Stejně jako v minulém díle našeho seriálu vidíme, že množství funkcí je opravdu velké.

Get-NetIPConfiguration

Podíváme se rovnou na náhradu příkazu ipconfig:

PS C:\> Get-NetIPConfiguration

InterfaceAlias       : Wi-Fi
InterfaceIndex       : 12
InterfaceDescription : Intel(R) WiFi Link
NetProfile.Name      : WiFi
IPv4Address          : 192.168.100.10
IPv6DefaultGateway   :
IPv4DefaultGateway   : 192.168.100.1
DNSServer            : 192.168.100.1

InterfaceAlias       : Ethernet
InterfaceIndex       : 13
InterfaceDescription : Intel(R) Gigabit Network Connection
NetAdapter.Status    : Disconnected

Z výstupu je jasné, že aktivní připojení je přes Wi-Fi a že máme dále dostupný ještě síťový adaptér Ethernet, který je momentálně odpojený. Pokud bychom použili parametr Detailed, dozvíme se podrobnější informace (podobné použití ipconfig /all).

Na tomto místě upozorním ještě na jeden chyták. Už jste se určitě potkali se situací, kdy jste si všimli, že ne všechny vlastnosti určitého zdroje (soubor, process, …) jsou ve výstupu vidět. Stejné je to i nyní. Pokud chcete zobrazit opravdu všechny parametry vašeho připojení, zkuste použít cmdlet Format-List:

PS C:\> Get-NetIPConfiguration | Format-List *

ComputerName         : WIN8
InterfaceAlias       : Wi-Fi
InterfaceIndex       : 12
InterfaceDescription : Intel(R) WiFi Link AGN
NetAdapter           : MSFT_NetAdapter (CreationClassName = "MSFT_NetAdapter", DeviceID = "{0-5EF4-449A-AFB5-2E082768F5}", SystemCreationClassName = "CIM_NetworkPort", SystemName = "Win8")
NetIPv6Interface     : MSFT_NetIPInterface (Name = ";?55??55;", CreationClassName = "", SystemCreationClassName = "", SystemName = "")

NetIPv4Interface     : MSFT_NetIPInterface (Name = ";?55?55;", CreationClassName = "", SystemCreationClassName = "", SystemName = "")
NetProfile           : MSFT_NetConnectionProfile (InstanceID = "{F8BE4A34-5EF4-449A-AFB5-2EC8282768F5}")
AllIPAddresses       : {192.168.100.103, ab80::c271:b947:89c0:bdea%12}
IPv6Address          : {}
IPv6TemporaryAddress : {}
IPv6LinkLocalAddress : {ab80::c271:b947:89c0:bdea%12}
IPv4Address          : {192.168.100.103}
IPv6DefaultGateway   :
IPv4DefaultGateway   : {MSFT_NetRoute (InstanceID = ":8:8:8:9:55;?55;C?8;@B8;:8;55;")}
DNSServer            : {MSFT_DNSClientServerAddress (Name = "12", CreationClassName = "", SystemCreationClassName = "", SystemName = "23"), MSFT_DNSClientServerAddress (Name = "12", CreationClassName = "", SystemCreationClassName = "", SystemName = "2")}
Detailed             : False

Get-NetIPInterface

Další možností je samozřejmost podívat se na konkrétní síťové rozhraní

PS C:\> Get-NetIPInterface

ifIndex InterfaceAlias       AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp     ConnectionState PolicyStore
------- --------------       ------------- ------------ --------------- ----     --------------- -----------
13      Ethernet             IPv6          1500         5               Disabled Disconnected    ActiveStore
15      Teredo Tunnelinge... IPv6          1280         50              Disabled Connected       ActiveStore
14      isatap.{F8-449A-A... IPv6          1280         50              Disabled Disconnected    ActiveStore
12      Wi-Fi                IPv6          1500         25              Enabled  Connected       ActiveStore
1       Loopback Pseudo-     IPv6          4294967295   50              Disabled Connected       ActiveStore
13      Ethernet             IPv4          1500         5               Enabled  Disconnected    ActiveStore
12      Wi-Fi                IPv4          1500         25              Enabled  Connected       ActiveStore
1       Loopback Pseudo-     IPv4          4294967295   50              Disabled Connected       ActiveStore

Ani u této funkce nezapomeňte použít Format-List!

NetAdapter

Druhým užitečným modulem pro práci se sítí je NetAdapter. Jak je již z názvu patrné, pracuje přímo s adaptérem. Pojďme si opět ukázat dostupné funkce:

PS C:\> Get-Command -Module NetAdapter

CommandType Name                                            ModuleName
----------- ----                                            ----------
Function    Disable-NetAdapter                              NetAdapter
Function    Disable-NetAdapterBinding                       NetAdapter
Function    Disable-NetAdapterChecksumOffload               NetAdapter
Function    Disable-NetAdapterEncapsulatedPacketTaskOffload NetAdapter
Function    Disable-NetAdapterIPsecOffload                  NetAdapter
Function    Disable-NetAdapterLso                           NetAdapter
Function    Disable-NetAdapterPowerManagement               NetAdapter
Function    Disable-NetAdapterQos                           NetAdapter
Function    Disable-NetAdapterRdma                          NetAdapter
Function    Disable-NetAdapterRsc                           NetAdapter
Function    Disable-NetAdapterRss                           NetAdapter
Function    Disable-NetAdapterSriov                         NetAdapter
Function    Disable-NetAdapterVmq                           NetAdapter
Function    Enable-NetAdapter                               NetAdapter
Function    Enable-NetAdapterBinding                        NetAdapter
Function    Enable-NetAdapterChecksumOffload                NetAdapter
Function    Enable-NetAdapterEncapsulatedPacketTaskOffload  NetAdapter
Function    Enable-NetAdapterIPsecOffload                   NetAdapter
Function    Enable-NetAdapterLso                            NetAdapter
Function    Enable-NetAdapterPowerManagement                NetAdapter
Function    Enable-NetAdapterQos                            NetAdapter
Function    Enable-NetAdapterRdma                           NetAdapter
Function    Enable-NetAdapterRsc                            NetAdapter
Function    Enable-NetAdapterRss                            NetAdapter
Function    Enable-NetAdapterSriov                          NetAdapter
Function    Enable-NetAdapterVmq                            NetAdapter
Function    Get-NetAdapter                                  NetAdapter
Function    Get-NetAdapterAdvancedProperty                  NetAdapter
Function    Get-NetAdapterBinding                           NetAdapter
Function    Get-NetAdapterChecksumOffload                   NetAdapter
Function    Get-NetAdapterEncapsulatedPacketTaskOffload     NetAdapter
Function    Get-NetAdapterHardwareInfo                      NetAdapter
Function    Get-NetAdapterIPsecOffload                      NetAdapter
Function    Get-NetAdapterLso                               NetAdapter
Function    Get-NetAdapterPowerManagement                   NetAdapter
Function    Get-NetAdapterQos                               NetAdapter
Function    Get-NetAdapterRdma                              NetAdapter
Function    Get-NetAdapterRsc                               NetAdapter
Function    Get-NetAdapterRss                               NetAdapter
Function    Get-NetAdapterSriov                             NetAdapter
Function    Get-NetAdapterSriovVf                           NetAdapter
Function    Get-NetAdapterStatistics                        NetAdapter
Function    Get-NetAdapterVmq                               NetAdapter
Function    Get-NetAdapterVmqQueue                          NetAdapter
Function    Get-NetAdapterVPort                             NetAdapter
Function    New-NetAdapterAdvancedProperty                  NetAdapter
Function    Remove-NetAdapterAdvancedProperty               NetAdapter
Function    Rename-NetAdapter                               NetAdapter
Function    Reset-NetAdapterAdvancedProperty                NetAdapter
Function    Restart-NetAdapter                              NetAdapter
Function    Set-NetAdapter                                  NetAdapter
Function    Set-NetAdapterAdvancedProperty                  NetAdapter
Function    Set-NetAdapterBinding                           NetAdapter
Function    Set-NetAdapterChecksumOffload                   NetAdapter
Function    Set-NetAdapterEncapsulatedPacketTaskOffload     NetAdapter
Function    Set-NetAdapterIPsecOffload                      NetAdapter
Function    Set-NetAdapterLso                               NetAdapter
Function    Set-NetAdapterPowerManagement                   NetAdapter
Function    Set-NetAdapterQos                               NetAdapter
Function    Set-NetAdapterRdma                              NetAdapter
Function    Set-NetAdapterRsc                               NetAdapter
Function    Set-NetAdapterRss                               NetAdapter
Function    Set-NetAdapterSriov                             NetAdapter
Function    Set-NetAdapterVmq                               NetAdapter

Poznámka: Rád bych upozornil na jednu věc. Vzhledem k množství dostupných funkcí, není mým cílem dnes ukázat jejich výstupy. Jde mi spíše o ukázání cesty a pouze některých (nejzajímavějších?). Jak jsem již řekl v prvním odstavci – PowerShell se nejlépe naučíte tak, že jej budete stále používat. Vyberte si proto funkci, která vám přijde zajímavá (ze začátku některou z Get-*), a podívejte se na její výstup. Každý den pak můžete přidat další.

Get-NetAdapter

Zkuste prozkoumat tuto funkci. Jak z ní získáte co nejvíc informací? Mohli byste postupovat například takto:

PS C:\> Get-NetAdapter
PS C:\> Get-Help Get-NetAdapter
PS C:\> Get-NetAdapter -Name Wi-Fi
PS C:\> Get-NetAdapter -Name Wi-Fi | Format-List *
PS C:\> Get-NetAdapter -Name Wi-Fi | Get-Member

Výstupem cmdletu Get-Member je objekt typu:

  • Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter

Podívejte se na MSFT_NetAdapter class článek na MSDN – stále je se co učit J

A co třeba Get-NetAdapterAdvancedProperty?

- David Moravec, MVP


 

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Modul NetTCPIP je minimálně pro Windows 8 a Windows Server 2012. Škoda.