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-Object
ExpandProperty 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.
Komputer Pinging
Anda dapat melakukan ping sederhana terhadap komputer menggunakan dengan Win32_PingStatus. Perintah berikut melakukan ping, tetapi mengembalikan output panjang:
Get-CimInstance -Class Win32_PingStatus -Filter "Address='127.0.0.1'"
Formulir yang lebih berguna untuk informasi ringkasan tampilan properti Alamat, ResponseTime, dan StatusCode, seperti yang dihasilkan oleh perintah berikut. Parameter Ukuran otomatisFormat-Table
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 Kueri mengambil Invoke-CimMethod
string kueri WQL. Cmdlet memanggil metode yang ditentukan pada setiap instans yang dikembalikan oleh kueri.
$wql = 'SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True'
$args = @{ DnsDomain = 'fabrikam.com'}
Invoke-CimMethod -MethodName SetDNSDomain -Arguments $args -Query $wql
Pemfilteran IPEnabled=True
pada diperlukan, karena bahkan pada jaringan yang hanya menggunakan TCP/IP, beberapa konfigurasi adaptor jaringan pada komputer bukan adaptor TCP/IP yang sebenarnya. 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
Catatan
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 Membuat metode 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 berbagi TempShare:
$wql = 'SELECT * from Win32_Share WHERE Name="TempShare"'
Invoke-CimMethod -MethodName Delete -Query $wql
Koneksi drive jaringan yang dapat diakses 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"
Catatan
Drive yang dipetakan secara terus-menerus mungkin tidak tersedia saat berjalan dalam konteks yang ditinggikan. Ini adalah perilaku default Windows UAC. Untuk informasi selengkapnya, baca artikel berikut:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk