Bagikan melalui


Melakukan tugas jaringan

Sampel ini hanya berlaku untuk platform Windows.

Karena TCP/IP adalah protokol jaringan yang paling umum digunakan, sebagian besar tugas administrasi protokol jaringan tingkat rendah melibatkan TCP/IP. Di bagian ini, kami menggunakan PowerShell dan WMI untuk melakukan tugas-tugas ini.

Mencantumkan alamat IP untuk komputer

Untuk mendapatkan semua alamat IP yang digunakan di komputer lokal, gunakan perintah berikut:

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

Karena properti IPAddress dari objek Win32_NetworkAdapterConfiguration adalah array, Anda harus menggunakan parameter Select-ObjectExpandProperty untuk melihat seluruh daftar alamat.

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

Get-Member Dengan menggunakan cmdlet, Anda dapat melihat bahwa properti IPAddress adalah array:

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

Properti IPAddress untuk setiap adaptor jaringan sebenarnya adalah array. Kurung kurawal dalam definisi menunjukkan bahwa IPAddress bukan nilai System.String , tetapi array nilai System.String .

Mencantumkan data konfigurasi IP

Untuk menampilkan data konfigurasi IP terperinci untuk setiap adaptor jaringan, gunakan perintah berikut:

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

Tampilan default untuk objek konfigurasi adaptor jaringan adalah kumpulan informasi yang tersedia yang sangat berkurang. Untuk inspeksi dan pemecahan masalah mendalam, gunakan Select-Object atau cmdlet pemformatan, seperti Format-List, untuk menentukan properti yang akan ditampilkan.

Dalam jaringan TCP/IP modern, Anda mungkin tidak tertarik dengan properti IPX atau WINS. Anda dapat menggunakan parameter ExcludeProperty untuk Select-Object menyembunyikan properti dengan nama yang dimulai dengan "WINS" atau "IPX".

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

Perintah ini mengembalikan informasi terperinci tentang DHCP, DNS, perutean, dan properti konfigurasi IP minor lainnya.

Mem-ping komputer

Anda dapat melakukan ping sederhana terhadap komputer dengan menggunakan Win32_PingStatus. Perintah berikut melakukan ping, tetapi mengembalikan output panjang:

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

Respons dari Win32_PingStatus berisi 29 properti. Anda dapat menggunakan Format-Table untuk memilih properti yang paling menarik bagi Anda. Parameter Format-TableUkuran Otomatis mengubah ukuran kolom tabel sehingga ditampilkan dengan benar di PowerShell.

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 0 menunjukkan ping yang berhasil.

Anda dapat menggunakan array untuk melakukan ping beberapa komputer dengan satu perintah. Karena ada lebih dari satu alamat, gunakan ForEach-Object untuk melakukan ping setiap alamat secara terpisah:

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

Anda dapat menggunakan format perintah yang sama untuk melakukan ping semua alamat pada subnet, seperti jaringan privat yang menggunakan nomor jaringan 192.168.1.0 dan masker subnet Kelas C standar (255.255.255.0)., Hanya alamat dalam rentang 192.168.1.1 hingga 192.168.1.254 yang merupakan alamat lokal yang sah (0 selalu dicadangkan untuk nomor jaringan dan 255 adalah alamat siaran subnet).

Untuk mewakili array angka dari 1 hingga 254 di PowerShell, gunakan ekspresi 1..254. Ping subnet lengkap dapat dilakukan dengan menambahkan setiap nilai dalam rentang ke alamat parsial dalam pernyataan ping:

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

Perhatikan bahwa teknik ini untuk menghasilkan berbagai alamat juga dapat digunakan di tempat lain. Anda dapat menghasilkan sekumpulan alamat lengkap dengan cara ini:

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

Mengambil properti adaptor jaringan

Sebelumnya, kami menyebutkan bahwa Anda dapat mengambil properti konfigurasi umum menggunakan kelas Win32_NetworkAdapterConfiguration . Meskipun tidak benar-benar informasi TCP/IP, informasi adaptor jaringan seperti alamat MAC dan jenis adaptor dapat berguna untuk memahami apa yang terjadi dengan komputer. Untuk mendapatkan ringkasan informasi ini, gunakan perintah berikut:

Get-CimInstance -Class Win32_NetworkAdapter -ComputerName .

Menetapkan domain DNS untuk adaptor jaringan

Untuk menetapkan domain DNS untuk resolusi nama otomatis, gunakan metode SetDNSDomain dari Win32_NetworkAdapterConfiguration. Parameter Query dari Invoke-CimMethod mengambil string kueri WQL. Cmdlet menjalankan metode yang ditentukan pada setiap instans yang dihasilkan oleh kueri.

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

Pemfilteran pada IPEnabled=True diperlukan, karena bahkan pada jaringan yang hanya menggunakan TCP/IP, beberapa konfigurasi adaptor jaringan pada komputer bukan adaptor TCP/IP sejati. mereka adalah elemen perangkat lunak umum yang mendukung RAS, VPN, QoS, dan layanan lainnya untuk semua adaptor dan dengan demikian tidak memiliki alamatnya sendiri.

Melakukan tugas konfigurasi DHCP

Memodifikasi detail DHCP melibatkan bekerja dengan sekumpulan adaptor jaringan, seperti halnya konfigurasi DNS. Ada beberapa tindakan berbeda yang dapat Anda lakukan menggunakan WMI.

Menemukan adaptor dengan dukungan DHCP

Untuk menemukan adaptor yang diaktifkan DHCP di komputer, gunakan perintah berikut:

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

Untuk mengecualikan adaptor dengan masalah konfigurasi IP, Anda hanya dapat mengambil adaptor berkemampuan IP:

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

Mengambil properti DHCP

Karena properti terkait DHCP untuk adaptor umumnya dimulai dengan DHCP, Anda dapat menggunakan parameter Format-Table Properti untuk hanya menampilkan properti tersebut:

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

Mengaktifkan DHCP pada setiap adaptor

Untuk mengaktifkan DHCP pada semua adaptor, gunakan perintah berikut:

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

Menggunakan pernyataan IPEnabled=True and DHCPEnabled=False filter menghindari pengaktifan DHCP tempat pernyataan tersebut sudah diaktifkan.

Merilis dan memperbarui sewa DHCP pada adaptor tertentu

Instans kelas Win32_NetworkAdapterConfiguration memiliki ReleaseDHCPLease metode dan RenewDHCPLease . Keduanya digunakan dengan cara yang sama. Secara umum, gunakan metode ini jika Anda hanya perlu merilis atau memperbarui alamat untuk adaptor pada subnet tertentu. Cara termampu untuk memfilter adaptor pada subnet adalah dengan memilih hanya konfigurasi adaptor yang menggunakan gateway untuk subnet tersebut. Misalnya, perintah berikut merilis semua sewa DHCP pada adaptor di komputer lokal yang mendapatkan sewa DHCP dari 192.168.1.254:

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

Satu-satunya perubahan untuk memperbarui sewa DHCP adalah menggunakan RenewDHCPLease metode alih-alih ReleaseDHCPLease metode :

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

Nota

Saat menggunakan metode ini di komputer jarak jauh, ketahuilah bahwa Anda dapat kehilangan akses ke sistem jarak jauh jika Anda terhubung ke dalamnya melalui adaptor dengan sewa yang dirilis atau diperbarui.

Merilis dan memperbarui sewa DHCP pada semua adaptor

Anda dapat melakukan rilis alamat DHCP global atau perpanjangan pada semua adaptor dengan menggunakan metode Win32_NetworkAdapterConfiguration , ReleaseDHCPLeaseAll dan RenewDHCPLeaseAll. Namun, perintah harus berlaku untuk kelas WMI, bukan adaptor tertentu, karena melepaskan dan memperbarui sewa secara global dilakukan pada kelas , bukan pada adaptor tertentu. Invoke-CimMethod Cmdlet dapat memanggil metode kelas.

Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName ReleaseDHCPLeaseAll

Anda dapat menggunakan format perintah yang sama untuk memanggil metode RenewDHCPLeaseAll :

Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName RenewDHCPLeaseAll

Membuat berbagi jaringan

Untuk membuat berbagi jaringan, gunakan Create metode Win32_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'
}

Ini setara dengan perintah berikut net share di Windows:

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

Untuk memanggil metode kelas WMI yang mengambil parameter, Anda harus mengetahui parameter apa yang tersedia dan jenis parameter tersebut. Misalnya, Anda dapat mencantumkan metode Win32_Class dengan perintah berikut:

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

Gunakan perintah berikut untuk mencantumkan Create parameter metode .

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

Anda juga dapat membaca dokumentasi untuk metode Create dari kelas Win32_Share.

Menghapus berbagi jaringan

Anda dapat menghapus berbagi jaringan dengan Win32_Share, tetapi prosesnya sedikit berbeda dari membuat berbagi, karena Anda perlu mengambil instans tertentu untuk dihapus, bukan kelas Win32_Share . Contoh berikut menghapus bagikan TempShare:

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

Menyambungkan drive jaringan yang dapat diakses oleh Windows

New-PSDrive Cmdlet dapat membuat drive PowerShell yang dipetakan ke berbagi jaringan.

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

Namun, drive yang dibuat dengan cara ini hanya tersedia untuk sesi PowerShell tempat drive dibuat. Untuk memetakan drive yang tersedia di luar PowerShell (atau ke sesi PowerShell lainnya), Anda harus menggunakan parameter Persist .

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

Nota

Drive yang dipetakan secara persisten mungkin tidak tersedia saat dijalankan dengan hak akses yang ditingkatkan. Ini adalah perilaku default Windows UAC. Untuk informasi selengkapnya, lihat artikel berikut ini: