Megosztás a következőn keresztül:


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 címek teljes listájának megtekintéséhez a Select-ObjectExpandProperty paraméterét 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 a 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 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álja Select-Object vagy formázási parancsmagot( például Format-List) a 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. A Select-ObjectExcludeProperty paraméterével 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

Egyszerű pingelést végezhet egy számítógépen a Win32_PingStatushasználatával. 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'"

A Win32_PingStatus válasza 29 tulajdonságot tartalmaz. A Format-Table segítségével kiválaszthatja a számára legérdekesebb tulajdonságokat. A Autosize paraméter Format-Table átméretezi a táblázat oszlopait, hogy 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, a ForEach-Object segítségével külön pingelje az egyes címeket:

'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 1..254kifejezést. 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_NetworkAdapterConfigurationSetDNSDomain metódusát. A Query paramétere a Invoke-CimMethod esetében WQL lekérdezési sztringet használ. 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

IPEnabled=True szűrése szükséges, mert még a csak TCP/IP-t használó hálózatokon is a számítógép hálózati adaptereinek számos konfigurációja nem valódi 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 DHCPkezdődnek, a Format-Table tulajdonságparaméterével csak ezeket 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 használata IPEnabled=True and DHCPEnabled=False 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 ReleaseDHCPLease és RenewDHCPLease metódusokkal rendelkezik. 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 ReleaseDHCPLease metódus helyett a RenewDHCPLease metódus használata:

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

Jegyzet

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ódusok, ReleaseDHCPLeaseAll és RenewDHCPLeaseAllhasználatával globális DHCP-címkiadásokat vagy -megújításokat hajthat végre az összes adapteren. 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

Ugyanazzal a parancsformátummal hívhatja meg a RenewDHCPLeaseAll metódust:

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 Win32_ShareCreate metódusá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 net share következő 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 Create metódus paramétereit.

(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 Create metódusának dokumentációját is elolvashatja.

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

Eltávolíthat egy hálózati megosztást 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 TempSharemegosztást:

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

Windows-akadálymentes hálózati meghajtó csatlakoztatása

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 Megőrzése paramétert kell használnia.

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

Jegyzet

Előfordulhat, hogy a tartósan csatolt 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ót a következő cikkben talál: