Hálózatkezelési feladatok végrehajtása

Ez a minta csak Windows-platformokra vonatkozik.

Mivel a TCP/IP a leggyakrabban használt hálózati protokoll, a legtöbb alacsony szintű hálózati protokoll-felügyeleti feladat a TCP/IP protokollt foglalja magában. Ebben a szakaszban a PowerShell és a WMI használatával hajtjuk végre ezeket a feladatokat.

Számítógép IP-címeinek listázása

A helyi számítógépen használt összes IP-cím lekéréséhez használja a következő parancsot:

Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
    Select-Object -ExpandProperty IPAddress

Mivel egy Win32_NetworkAdapterConfiguration objektum IPAddress tulajdonsága tömb, a teljes címlista megtekintéséhez az ExpandProperty paramétert Select-Object kell használnia.

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

A Get-Member parancsmaggal láthatja, hogy az IPAddress tulajdonság tömb:

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;}

Az egyes hálózati adapterek IPAddress tulajdonsága valójában tömb. A definíció zárójelei azt jelzik, hogy az IPAddress nem System.String érték, hanem System.String értékek tömbje.

IP-konfigurációs adatok listázása

Az egyes hálózati adapterek részletes IP-konfigurációs adatainak megjelenítéséhez használja a következő parancsot:

Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true

A hálózati adapter konfigurációs objektumának alapértelmezett megjelenítése a rendelkezésre álló információk nagyon korlátozott készlete. Részletes vizsgálathoz és hibaelhárításhoz használjon Select-Object vagy formázó parancsmagot, például Format-Lista megjelenítendő tulajdonságok megadásához.

A modern TCP/IP-hálózatokban valószínűleg nem érdekli az IPX vagy a WINS tulajdonságai. Az ExcludeProperty paraméterrel Select-Object elrejtheti a "WINS" vagy az "IPX" kezdetű neveket tartalmazó tulajdonságokat.

Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
    Select-Object -ExcludeProperty IPX*,WINS*

Ez a parancs részletes információkat ad vissza a DHCP, a DNS, az útválasztás és más kisebb IP-konfigurációs tulajdonságokról.

Számítógépek pingelése

A Win32_PingStatus használatával egyszerűen pingelhet egy számítógépet. A következő parancs végrehajtja a pingelést, de hosszú kimenetet ad vissza:

Get-CimInstance -Class Win32_PingStatus -Filter "Address='127.0.0.1'"

Hasznosabb űrlap az összefoglaló információkhoz a Cím, a ResponseTime és a StatusCode tulajdonságok megjelenítéséhez az alábbi parancs által generált módon. Az automatikus méretezési paraméter átméretezi Format-Table a táblázat oszlopait, hogy azok megfelelően jelenjenek meg a PowerShellben.

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

A 0 állapotkód sikeres pingelést jelez.

Egy tömb használatával több számítógépet is pingelhet egyetlen paranccsal. Mivel több cím is van, az egyes címek pingeléséhez használja a ForEach-Object következőt:

'127.0.0.1','localhost','bing.com' |
  ForEach-Object -Process {
    Get-CimInstance -Class Win32_PingStatus -Filter ("Address='$_'") |
      Select-Object -Property Address,ResponseTime,StatusCode
  }

Ugyanazzal a parancsformátummal pingelheti az alhálózat összes címét, például egy magánhálózatot, amely a 192.168.1.0-s hálózati számot és egy standard C osztályú alhálózati maszkot (255.255.255.0) használ. Csak a 192.168.1.1–192.168.1.254 tartományba tartozó címek jogos helyi címek (a 0 mindig a hálózati számhoz van fenntartva, a 255 pedig alhálózati szórási cím).

A PowerShellben az 1 és 254 közötti számok tömbjének megjelenítéséhez használja a kifejezést 1..254. A teljes alhálózati pingelés úgy hajtható végre, hogy a tartomány minden értékét hozzáadja egy részleges címhez a pingelési utasításban:

1..254| ForEach-Object -Process {
  Get-CimInstance -Class Win32_PingStatus -Filter ("Address='192.168.1.$_'") } |
    Select-Object -Property Address,ResponseTime,StatusCode

Vegye figyelembe, hogy ez a címtartomány létrehozására szolgáló technika máshol is használható. A címek teljes készletét így hozhatja létre:

$ips = 1..254 | ForEach-Object -Process {'192.168.1.' + $_}

Hálózati adapter tulajdonságainak lekérése

Korábban már említettük, hogy a Win32_NetworkAdapterConfiguration osztály használatával lekérheti az általános konfigurációs tulajdonságokat. Bár nem szigorúan TCP/IP-információk, a hálózati adapter adatai, például a MAC-címek és az adaptertípusok hasznosak lehetnek a számítógéppel kapcsolatos problémák megértéséhez. Az információk összegzéséhez használja a következő parancsot:

Get-CimInstance -Class Win32_NetworkAdapter -ComputerName .

A DNS-tartomány hozzárendelése hálózati adapterhez

A DNS-tartomány automatikus névfeloldáshoz való hozzárendeléséhez használja a Win32_NetworkAdapterConfiguration SetDNSDomain metódusát. A lekérdezési paraméter WQL lekérdezési Invoke-CimMethod sztringet vesz fel. A parancsmag meghívja a lekérdezés által visszaadott egyes példányokon megadott metódust.

$wql = 'SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True'
$args = @{ DnsDomain = 'fabrikam.com'}
Invoke-CimMethod -MethodName SetDNSDomain -Arguments $args -Query $wql

A szűrésre IPEnabled=True azért van szükség, mert még a csak TCP/IP-t használó hálózatokon is a számítógép hálózati adapterének számos konfigurációja nem igaz TCP/IP-adapter. ezek általános szoftverelemek, amelyek a RAS, VPN, QoS és egyéb szolgáltatásokat támogatják az összes adapterhez, így nem rendelkeznek saját címmel.

DHCP-konfigurációs feladatok végrehajtása

A DHCP részleteinek módosítása magában foglalja a hálózati adapterek készletének használatát, ugyanúgy, mint a DNS-konfigurációt. A WMI használatával számos különböző műveletet hajthat végre.

DHCP-kompatibilis adapterek keresése

A DHCP-kompatibilis adapterek számítógépen való megkereséséhez használja a következő parancsot:

Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=$true"

Az IP-konfigurációs problémákkal rendelkező adapterek kizárásához csak az IP-kompatibilis adaptereket lehet lekérni:

Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true and DHCPEnabled=$true"

DHCP-tulajdonságok beolvasása

Mivel egy adapter DHCP-hez kapcsolódó tulajdonságai általában a következőkkel DHCPkezdődnek, a tulajdonságparaméterrel Format-Table csak azokat a tulajdonságokat jelenítheti meg:

Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter  "IPEnabled=$true and DHCPEnabled=$true" |
  Format-Table -Property DHCP*

DHCP engedélyezése minden adapteren

Ha minden adapteren engedélyezni szeretné a DHCP-t, használja a következő parancsot:

$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE IPEnabled=True and DHCPEnabled=False'
Invoke-CimMethod -MethodName ReleaseDHCPLease -Query $wql

A szűrőutasítás IPEnabled=True and DHCPEnabled=False használata elkerüli a DHCP engedélyezését ott, ahol már engedélyezve van.

DHCP-bérletek felszabadítása és megújítása adott adaptereken

A Win32_NetworkAdapterConfiguration osztály példányai és ReleaseDHCPLeaseRenewDHCPLease metódusai. Mindkettőt ugyanúgy használják. Általában akkor használja ezeket a módszereket, ha csak egy adott alhálózaton lévő adapter címeit kell felszabadítania vagy megújítania. Az alhálózat adaptereinek szűrésének legegyszerűbb módja, ha csak azokat az adapter-konfigurációkat választja ki, amelyek az adott alhálózat átjáróját használják. A következő parancs például az összes DHCP-bérletet felszabadítja a helyi számítógépen lévő összes olyan adapteren, amely a DHCP-bérleteket a 192.168.1.254-től szerzi be:

$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE DHCPServer="192.168.1.1"'
Invoke-CimMethod -MethodName ReleaseDHCPLease -Query $wql

A DHCP-bérlet megújításának egyetlen módosítása a metódus helyett a RenewDHCPLeaseReleaseDHCPLease metódus használata:

$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE DHCPServer="192.168.1.1"'
Invoke-CimMethod -MethodName RenewDHCPLease -Query $wql

Feljegyzés

Ha ezeket a módszereket távoli számítógépen használja, vegye figyelembe, hogy elveszítheti a távoli rendszerhez való hozzáférést, ha az adapteren keresztül csatlakozik hozzá a kiadott vagy megújított bérlettel.

DHCP-bérletek kiadása és megújítása az összes adapteren

Az Win32_NetworkAdapterConfiguration metódusokkal globális DHCP-címkiadásokat vagy -megújításokat hajthat végre az összes adapteren. ReleaseDHCPLeaseAllRenewDHCPLeaseAll A parancsnak azonban nem egy adott adapterre, hanem a WMI-osztályra kell vonatkoznia, mivel a bérletek globális kiadása és megújítása nem egy adott adapteren, hanem az osztályon történik. A Invoke-CimMethod parancsmag meghívhatja egy osztály metódusait.

Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName ReleaseDHCPLeaseAll

Ugyanazt a parancsformátumot használhatja a RenewDHCPLeaseAll metódus meghívásához:

Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName RenewDHCPLeaseAll

Hálózati megosztás létrehozása

Hálózati megosztás létrehozásához használja a Create Win32_Share módszerét:

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'
}

Ez egyenértékű a windowsos következő net share paranccsal:

net share tempshare=c:\temp /users:25 /remark:"test share of the temp folder"

A paramétereket használó WMI-osztály metódusának meghívásához ismernie kell az elérhető paramétereket és a paraméterek típusait. A Win32_Class metódusait például a következő parancsokkal listázhatja:

(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}

Az alábbi paranccsal listázhatja a metódus paramétereit Create .

(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}

A Win32_Share osztály létrehozási módjának dokumentációját is elolvashatja.

Hálózati megosztás eltávolítása

A hálózati megosztásokat eltávolíthatja a Win32_Share, de a folyamat kissé eltér a megosztások létrehozásának folyamatától, mivel a Win32_Share osztály helyett le kell kérnie az eltávolítani kívánt példányt. Az alábbi példa törli a TempShare megosztást:

$wql = 'SELECT * from Win32_Share WHERE Name="TempShare"'
Invoke-CimMethod -MethodName Delete -Query $wql

Windows-akadálymentes hálózati meghajtó Csatlakozás

A New-PSDrive parancsmag létrehozhat egy hálózati megosztásra leképezett PowerShell-meghajtót.

New-PSDrive -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"

Az így létrehozott meghajtók azonban csak a PowerShell-munkamenetben érhetők el, ahol létre lettek hozva. A PowerShellen (vagy más PowerShell-munkameneteken) kívül elérhető meghajtók leképezéséhez a Persist paramétert kell használnia.

New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"

Feljegyzés

Előfordulhat, hogy az állandólag leképezett meghajtók nem érhetők el emelt szintű környezetben való futtatáskor. Ez a Windows UAC alapértelmezett viselkedése. További információkért tekintse át az alábbi cikket: