Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato ukázka platí jenom pro platformy Windows.
Vzhledem k tomu, že protokol TCP/IP je nejčastěji používaný síťový protokol, zahrnuje většina úloh správy síťových protokolů nízké úrovně protokol TCP/IP. V této části k těmto úlohám používáme PowerShell a rozhraní WMI.
Výpis IP adres pro počítač
Pokud chcete získat všechny IP adresy používané na místním počítači, použijte následující příkaz:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
Select-Object -ExpandProperty IPAddress
Vzhledem k tomu, že vlastnost IPAddress objektu Win32_NetworkAdapterConfiguration je pole, musíte použít parametr ExpandPropertySelect-Object, abyste mohli zobrazit celý seznam adres.
10.0.0.1
fe80::60ea:29a7:a233:7cb7
2601:600:a27f:a470:f532:6451:5630:ec8b
2601:600:a27f:a470:e167:477d:6c5c:342d
2601:600:a27f:a470:b021:7f0d:eab9:6299
2601:600:a27f:a470:a40e:ebce:1a8c:a2f3
2601:600:a27f:a470:613c:12a2:e0e0:bd89
2601:600:a27f:a470:444f:17ec:b463:7edd
2601:600:a27f:a470:10fd:7063:28e9:c9f3
2601:600:a27f:a470:60ea:29a7:a233:7cb7
2601:600:a27f:a470::2ec1
Pomocí rutiny Get-Member vidíte, že vlastnost IPAddress je pole:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
Get-Member -Name IPAddress
TypeName: Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration
Name MemberType Definition
---- ---------- ----------
IPAddress Property string[] IPAddress {get;}
Vlastnost IPAddress pro každý síťový adaptér je ve skutečnosti pole. Složené závorky v definici označují, že IPAddress není hodnota System.String, ale pole hodnot System.String.
Výpis konfiguračních dat PROTOKOLU IP
Pokud chcete zobrazit podrobná konfigurační data PROTOKOLU IP pro každý síťový adaptér, použijte následující příkaz:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true
Výchozí zobrazení pro objekt konfigurace síťového adaptéru je velmi omezenou sadou dostupných informací. K podrobné kontrole a řešení potíží použijte Select-Object nebo rutinu formátování, například Format-List, a určete vlastnosti, které se mají zobrazit.
V moderních sítích TCP/IP pravděpodobně nemáte zájem o vlastnosti IPX nebo WINS. Pomocí parametru ExcludePropertySelect-Object můžete skrýt vlastnosti s názvy začínajícími na "WINS" nebo "IPX".
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
Select-Object -ExcludeProperty IPX*,WINS*
Tento příkaz vrátí podrobné informace o DHCP, DNS, směrování a dalších menších vlastnostech konfigurace IP.
Pingování počítačů
Pomocí příkazu Win32_PingStatusmůžete na počítači provést jednoduchý příkaz ping. Následující příkaz provede příkaz ping, ale vrátí dlouhý výstup:
Get-CimInstance -Class Win32_PingStatus -Filter "Address='127.0.0.1'"
Odpověď z Win32_PingStatus obsahuje 29 vlastností. Pomocí Format-Table můžete vybrat vlastnosti, které jsou pro vás nejzajímavější. Parametr Format-TableAutoSize změní velikost sloupců tabulky tak, aby se správně zobrazovaly v PowerShellu.
Get-CimInstance -Class Win32_PingStatus -Filter "Address='127.0.0.1'" |
Format-Table -Property Address,ResponseTime,StatusCode -AutoSize
Address ResponseTime StatusCode
------- ------------ ----------
127.0.0.1 0 0
StatusCode of 0 označuje úspěšný příkaz ping.
Můžete použít pole k odeslání pingů na více počítačů pomocí jediného příkazu. Vzhledem k tomu, že existuje více než jedna adresa, použijte ForEach-Object k odeslání příkazu ping na každou adresu samostatně:
'127.0.0.1','localhost','bing.com' |
ForEach-Object -Process {
Get-CimInstance -Class Win32_PingStatus -Filter ("Address='$_'") |
Select-Object -Property Address,ResponseTime,StatusCode
}
Stejný formát příkazu můžete použít k příkazu ping všech adres v podsíti, jako je privátní síť, která používá číslo sítě 192.168.1.0 a standardní masku podsítě třídy C (255.255.255.0)., Pouze adresy v rozsahu 192.168.1.1 až 192.168.1.254 jsou legitimní místní adresy (0 je vždy vyhrazeno pro číslo sítě a 255 je adresa vysílání podsítě).
Chcete-li znázorňovat pole čísel od 1 do 254 v PowerShellu, použijte výraz 1..254.
Ping celé podsítě lze provést přidáním každé hodnoty z rozsahu k částečné adrese v příkazu ping.
1..254| ForEach-Object -Process {
Get-CimInstance -Class Win32_PingStatus -Filter ("Address='192.168.1.$_'") } |
Select-Object -Property Address,ResponseTime,StatusCode
Všimněte si, že tato technika pro generování rozsahu adres se dá použít i jinde. Úplnou sadu adres můžete vygenerovat tímto způsobem:
$ips = 1..254 | ForEach-Object -Process {'192.168.1.' + $_}
Načítání vlastností síťového adaptéru
Dříve jsme se zmínili, že byste mohli načíst obecné vlastnosti konfigurace pomocí třídy Win32_NetworkAdapterConfiguration. I když nejsou výhradně informace o protokolu TCP/IP, můžou být užitečné informace o síťovém adaptéru, jako jsou adresy MAC a typy adaptérů, abyste pochopili, co se děje s počítačem. Pokud chcete získat souhrn těchto informací, použijte následující příkaz:
Get-CimInstance -Class Win32_NetworkAdapter -ComputerName .
Přiřazení domény DNS pro síťový adaptér
Pokud chcete přiřadit doménu DNS pro automatický překlad názvů, použijte metodu SetDNSDomain třídy Win32_NetworkAdapterConfiguration. Parametr dotazu pro Invoke-CimMethod přijímá řetězec dotazu WQL. Příkaz cmdlet volá metodu zadanou pro každou instanci vrácenou dotazem.
$wql = 'SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True'
$args = @{ DnsDomain = 'fabrikam.com'}
Invoke-CimMethod -MethodName SetDNSDomain -Arguments $args -Query $wql
Filtrování na IPEnabled=True je nezbytné, protože i v síti, která používá pouze protokol TCP/IP, není několik konfigurací síťových adaptérů v počítači skutečnými adaptéry TCP/IP. Jsou to obecné softwarové prvky podporující RAS, VPN, QoS a další služby pro všechny adaptéry, a proto nemají vlastní adresu.
Provádění úloh konfigurace DHCP
Úpravy podrobností DHCP zahrnují práci se sadou síťových adaptérů, stejně jako konfigurace DNS. Pomocí rozhraní WMI můžete provádět několik různých akcí.
Vyhledání adaptérů s podporou DHCP
K vyhledání adaptérů s podporou DHCP v počítači použijte následující příkaz:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=$true"
Pokud chcete vyloučit adaptéry s problémy s konfigurací protokolu IP, můžete načíst pouze adaptéry s podporou IP.
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true and DHCPEnabled=$true"
Načítání vlastností DHCP
Vzhledem k tomu, že vlastnosti související s protokolem DHCP pro adaptér obvykle začínají DHCP, můžete použít parametr Vlastnost Format-Table k zobrazení pouze těchto vlastností:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true and DHCPEnabled=$true" |
Format-Table -Property DHCP*
Povolení protokolu DHCP na každém adaptéru
Pokud chcete povolit protokol DHCP na všech adaptérech, použijte následující příkaz:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE IPEnabled=True and DHCPEnabled=False'
Invoke-CimMethod -MethodName ReleaseDHCPLease -Query $wql
Použití příkazu filtru IPEnabled=True and DHCPEnabled=False zabraňuje povolení dhcp tam, kde už je povolený.
Uvolnění a obnovení zapůjčení DHCP u konkrétních adaptérů
Instance třídy Win32_NetworkAdapterConfiguration mají metody ReleaseDHCPLease a RenewDHCPLease. Obě se používají stejným způsobem. Obecně platí, že tyto metody použijte, pokud potřebujete uvolnit nebo obnovit adresy adaptéru v konkrétní podsíti. Nejjednodušší způsob, jak filtrovat adaptéry v podsíti, je zvolit pouze konfigurace adaptérů, které pro tuto podsíť používají bránu. Následující příkaz například uvolní všechna zapůjčení DHCP na adaptérech v místním počítači, které získávají zapůjčení DHCP z verze 192.168.1.254:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE DHCPServer="192.168.1.1"'
Invoke-CimMethod -MethodName ReleaseDHCPLease -Query $wql
Jedinou změnou pro prodloužení zapůjčení DHCP je použití metody RenewDHCPLease místo metody ReleaseDHCPLease:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE DHCPServer="192.168.1.1"'
Invoke-CimMethod -MethodName RenewDHCPLease -Query $wql
Poznámka
Při použití těchto metod na vzdáleném počítači mějte na paměti, že pokud jste k němu připojeni prostřednictvím adaptéru s uvolněným nebo obnoveným zapůjčením, můžete ztratit přístup ke vzdálenému systému.
Uvolnění a obnovení pronájmu DHCP na všech síťových adaptérech
Na všech adaptérech můžete uvolnit nebo obnovit adresy DHCP globálně pomocí metod Win32_NetworkAdapterConfiguration, ReleaseDHCPLeaseAll a RenewDHCPLeaseAll.
Příkaz však musí platit pro třídu WMI, nikoli pro konkrétní adaptér, protože uvolnění a obnovení zapůjčení se provádí globálně u třídy, ne na konkrétním adaptéru. Cmdlet Invoke-CimMethod může volat metody třídy.
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName ReleaseDHCPLeaseAll
Stejný formát příkazu můžete použít k vyvolání metody RenewDHCPLeaseAll:
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName RenewDHCPLeaseAll
Vytvoření síťového sdílení
Pro vytvoření síťového sdílení použijte metodu CreateWin32_Share:
Invoke-CimMethod -ClassName Win32_Share -MethodName Create -Arguments @{
Path = 'C:\temp'
Name = 'TempShare'
Type = [uint32]0 #Disk Drive
MaximumAllowed = [uint32]25
Description = 'test share of the temp folder'
}
To odpovídá následujícímu příkazu net share ve Windows:
net share tempshare=C:\temp /users:25 /remark:"test share of the temp folder"
Chcete-li volat metodu třídy WMI, která přebírá parametry, musíte vědět, jaké parametry jsou k dispozici a typy těchto parametrů. Můžete například zobrazit seznam metod Win32_Class pomocí následujících příkazů:
(Get-CimClass -ClassName Win32_Share).CimClassMethods
Name ReturnType Parameters Qualifiers
---- ---------- ---------- ----------
Create UInt32 {Access, Description, MaximumAllowed, Name…} {Constructor, Implemented, MappingStrings, Stati…
SetShareInfo UInt32 {Access, Description, MaximumAllowed} {Implemented, MappingStrings}
GetAccessMask UInt32 {} {Implemented, MappingStrings}
Delete UInt32 {} {Destructor, Implemented, MappingStrings}
Pomocí následujícího příkazu vypíšete parametry Create metody.
(Get-CimClass -ClassName Win32_Share).CimClassMethods['Create'].Parameters
Name CimType Qualifiers ReferenceClassName
---- ------- ---------- ------------------
Access Instance {EmbeddedInstance, ID, In, MappingStrings…}
Description String {ID, In, MappingStrings, Optional}
MaximumAllowed UInt32 {ID, In, MappingStrings, Optional}
Name String {ID, In, MappingStrings}
Password String {ID, In, MappingStrings, Optional}
Path String {ID, In, MappingStrings}
Type UInt32 {ID, In, MappingStrings}
Můžete si také přečíst dokumentaci pro Create metodu Win32_Share třídy.
Odebrání síťového sdílení
Sdílenou síťovou složku můžete odebrat pomocí Win32_Share, ale proces se mírně liší od vytvoření sdílené složky, protože potřebujete načíst konkrétní instanci, která se má odebrat, a ne Win32_Share třídu. Následující příklad odstraní sdílenou složku TempShare:
$wql = 'SELECT * from Win32_Share WHERE Name="TempShare"'
Invoke-CimMethod -MethodName Delete -Query $wql
Připojení síťové jednotky přístupné pro Windows
Cmdlet New-PSDrive může vytvořit jednotku PowerShell, která je mapovaná na sdílenou síťovou složku.
New-PSDrive -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"
Jednotky vytvořené tímto způsobem jsou ale dostupné jenom pro relaci PowerShellu, ve které byly vytvořeny. Pokud chcete namapovat jednotku, která je k dispozici mimo PowerShell (nebo do jiných relací PowerShellu), musíte použít parametr Zachovat.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"
Poznámka
Jednotky s trvalým mapováním nemusí být dostupné při spuštění v kontextu se zvýšenými oprávněními. Toto je výchozí chování Windows UAC. Další informace najdete v následujícím článku: