Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek yalnızca Windows platformları için geçerlidir.
TCP/IP en yaygın kullanılan ağ protokolü olduğundan, alt düzey ağ protokolü yönetim görevlerinin çoğu TCP/IP içerir. Bu bölümde, bu görevleri gerçekleştirmek için PowerShell ve WMI kullanacağız.
Bir bilgisayarın IP adreslerini listeleme
Yerel bilgisayarda kullanımda olan tüm IP adreslerini almak için aşağıdaki komutu kullanın:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
Select-Object -ExpandProperty IPAddress
Win32_NetworkAdapterConfiguration nesnesinin IPAddress özelliği bir dizi olduğundan, adres listesinin tamamını görmek için Select-Object
parametresini kullanmanız gerekir.
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
cmdlet'ini kullanarak IPAddress özelliğinin bir dizi olduğunu görebilirsiniz:
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;}
Her ağ bağdaştırıcısı için IPAddress özelliği aslında bir dizidir. Tanımdaki ayraçlar, IPAddress'in bir System.String değeri olmadığını, aksine bir dizi System.String değeri olduğunu gösterir.
IP yapılandırma verilerini listeleme
Her ağ bağdaştırıcısının ayrıntılı IP yapılandırma verilerini görüntülemek için aşağıdaki komutu kullanın:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true
Ağ bağdaştırıcısı yapılandırma nesnesi için varsayılan görüntü, kullanılabilir bilgilerin çok azaltılmış bir kümesidir. Ayrıntılı inceleme ve sorun giderme için, görüntülenecek özellikleri belirtmek için Select-Object
veya Format-List
gibi bir biçimlendirme cmdlet'ini kullanın.
Modern TCP/IP ağlarında büyük olasılıkla IPX veya WINS özellikleriyle ilgilenmezsiniz. "WINS" veya "IPX" ile başlayan adlarla özellikleri gizlemek için Select-Object
parametresini kullanabilirsiniz.
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
Select-Object -ExcludeProperty IPX*,WINS*
Bu komut DHCP, DNS, yönlendirme ve diğer ikincil IP yapılandırma özellikleri hakkında ayrıntılı bilgi döndürür.
Bilgisayarlara ping atma
Win32_PingStatuskullanarak bir bilgisayarda basit bir ping gerçekleştirebilirsiniz. Aşağıdaki komut ping işlemini gerçekleştirir, ancak uzun çıkış döndürür:
Get-CimInstance -Class Win32_PingStatus -Filter "Address='127.0.0.1'"
Win32_PingStatus yanıtı 29 özellik içerir. sizin için en ilginç özellikleri seçmek için Format-Table
kullanabilirsiniz.
Format-Table
Otomatik Boyutlandır parametresi, tablo sütunlarını PowerShell'de düzgün görüntülenecek şekilde yeniden boyutlandırır.
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
0 StatusCode başarılı bir ping olduğunu gösterir.
Tek bir komutla birden çok bilgisayara ping göndermek için bir dizi kullanabilirsiniz. Birden fazla adres olduğundan, her adrese ayrı ping göndermek için ForEach-Object
kullanın:
'127.0.0.1','localhost','bing.com' |
ForEach-Object -Process {
Get-CimInstance -Class Win32_PingStatus -Filter ("Address='$_'") |
Select-Object -Property Address,ResponseTime,StatusCode
}
192.168.1.0 ağ numarası ve standart C Sınıfı alt ağ maskesi (255.255.255.0) kullanan özel ağ gibi bir alt ağdaki tüm adreslere ping göndermek için aynı komut biçimini kullanabilirsiniz. Yalnızca 192.168.1.1 ile 192.168.1.254 aralığındaki adresler geçerli yerel adreslerdir (0 her zaman ağ numarası için ayrılmıştır ve 255 bir alt ağ yayın adresidir).
PowerShell'de 1 ile 254 arasında bir sayı dizisini temsil etmek için 1..254
ifadesini kullanın.
Aralıktaki her bir değer, ping komut ifadesindeki kısmi bir adrese eklenip tüm alt ağı pingleme gerçekleştirilebilir.
1..254| ForEach-Object -Process {
Get-CimInstance -Class Win32_PingStatus -Filter ("Address='192.168.1.$_'") } |
Select-Object -Property Address,ResponseTime,StatusCode
Bir adres aralığı oluşturmaya yönelik bu tekniğin başka bir yerde de kullanılabileceğini unutmayın. Bu şekilde tam bir adres kümesi oluşturabilirsiniz:
$ips = 1..254 | ForEach-Object -Process {'192.168.1.' + $_}
Ağ bağdaştırıcısı özelliklerini alma
Daha önce, Win32_NetworkAdapterConfiguration sınıfını kullanarak genel yapılandırma özelliklerini alabileceğinizden bahsetmiştik. Tcp/IP bilgileri tam olarak olmasa da, MAC adresleri ve bağdaştırıcı türleri gibi ağ bağdaştırıcısı bilgileri, bilgisayarda neler olduğunu anlamak için yararlı olabilir. Bu bilgilerin özetini almak için aşağıdaki komutu kullanın:
Get-CimInstance -Class Win32_NetworkAdapter -ComputerName .
Ağ bağdaştırıcısına DNS etki alanı atama
Otomatik ad çözümlemesi için DNS etki alanını atamak amacıyla, Win32_NetworkAdapterConfigurationnesnesinin SetDNSDomain yöntemini kullanın.
'nin Invoke-CimMethod
parametresi WQL sorgu dizesi alır. Cmdlet, sorgu tarafından döndürülen her örnek üzerinde belirtilen yöntemi çağırır.
$wql = 'SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True'
$args = @{ DnsDomain = 'fabrikam.com'}
Invoke-CimMethod -MethodName SetDNSDomain -Arguments $args -Query $wql
Yalnızca TCP/IP kullanan bir ağda bile bir bilgisayardaki ağ bağdaştırıcısı yapılandırmalarının birkaçı gerçek TCP/IP bağdaştırıcıları olmadığından IPEnabled=True
filtreleme gereklidir. tüm bağdaştırıcılar için RAS, VPN, QoS ve diğer hizmetleri destekleyen genel yazılım öğeleridir ve bu nedenle kendi adresleri yoktur.
DHCP yapılandırma görevlerini gerçekleştirme
DHCP ayrıntılarını değiştirmek, DNS yapılandırmasında olduğu gibi bir dizi ağ bağdaştırıcısıyla çalışmayı içerir. WMI kullanarak gerçekleştirebileceğiniz birkaç farklı eylem vardır.
DHCP özellikli bağdaştırıcıları bulma
Bir bilgisayarda DHCP özellikli bağdaştırıcıları bulmak için aşağıdaki komutu kullanın:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=$true"
IP yapılandırma sorunları olan bağdaştırıcıları dışlamak için yalnızca IP özellikli bağdaştırıcıları alabilirsiniz:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true and DHCPEnabled=$true"
DHCP özelliklerini alma
Bir bağdaştırıcının DHCP ile ilgili özellikleri genellikle DHCP
ile başladığından, yalnızca bu özellikleri görüntülemek için Format-Table
Özellik parametresini kullanabilirsiniz:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true and DHCPEnabled=$true" |
Format-Table -Property DHCP*
Her bağdaştırıcıda DHCP'yi etkinleştirme
DHCP'yi tüm bağdaştırıcılarda etkinleştirmek için aşağıdaki komutu kullanın:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE IPEnabled=True and DHCPEnabled=False'
Invoke-CimMethod -MethodName ReleaseDHCPLease -Query $wql
Filtre deyimini IPEnabled=True and DHCPEnabled=False
kullanmak, DHCP'nin zaten etkin olduğu yerde etkinleştirilmesini önler.
Belirli bağdaştırıcılarda DHCP kiralarını serbest bırakma ve yenileme
Win32_NetworkAdapterConfiguration sınıfının örnekleri ReleaseDHCPLease
ve RenewDHCPLease
yöntemlerine sahiptir. Her ikisi de aynı şekilde kullanılır. Genel olarak, bu yöntemleri yalnızca belirli bir alt ağdaki bir bağdaştırıcının adreslerini serbest bırakmanız veya yenilemeniz gerekiyorsa kullanın. Bir alt ağ üzerindeki bağdaştırıcıları filtrelemenin en kolay yolu, yalnızca söz konusu alt ağ için ağ geçidini kullanan bağdaştırıcı yapılandırmalarını seçmektir. Örneğin, aşağıdaki komut 192.168.1.254'ten DHCP kiraları alan yerel bilgisayardaki bağdaştırıcılardaki tüm DHCP kiralarını serbest bırakır:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE DHCPServer="192.168.1.1"'
Invoke-CimMethod -MethodName ReleaseDHCPLease -Query $wql
DHCP kirasını yenilemek için tek değişiklik, RenewDHCPLease
yöntemi yerine ReleaseDHCPLease
yöntemini kullanmaktır:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE DHCPServer="192.168.1.1"'
Invoke-CimMethod -MethodName RenewDHCPLease -Query $wql
Not
Bu yöntemleri uzak bir bilgisayarda kullanırken, serbest bırakılan veya yenilenen kira ile bağdaştırıcı aracılığıyla bağlıysanız uzak sisteme erişiminizi kaybedebileceğinizi unutmayın.
Tüm bağdaştırıcılarda DHCP kira sözleşmelerini serbest bırakma ve yenileme
Win32_NetworkAdapterConfiguration yöntemlerini, ReleaseDHCPLeaseAll
ve RenewDHCPLeaseAll
kullanarak tüm bağdaştırıcılarda genel DHCP adresi yayınları veya yenilemeleri gerçekleştirebilirsiniz.
Ancak, kiraların genel olarak serbest bırakılması ve yenilenmesi işlemi belirli bir bağdaştırıcıda değil, sınıfta gerçekleştirildiğinden, komutun özel bir bağdaştırıcı yerine WMI sınıfına uygulanması gerekir.
Invoke-CimMethod
cmdlet'i bir sınıfın yöntemlerini çağırabilir.
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName ReleaseDHCPLeaseAll
RenewDHCPLeaseAll yöntemini çağırmak için aynı komut biçimini kullanabilirsiniz:
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName RenewDHCPLeaseAll
Ağ Paylaşımı Oluşturma
Ağ paylaşımı oluşturmak için Create
yöntemini kullanın:
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'
}
Bu, Windows'ta aşağıdaki net share
komutuyla eşdeğerdir:
net share tempshare=C:\temp /users:25 /remark:"test share of the temp folder"
Parametreleri alan bir WMI sınıfının yöntemini çağırmak için hangi parametrelerin kullanılabilir olduğunu ve bu parametrelerin türlerini bilmeniz gerekir. Örneğin, Win32_Class yöntemlerini aşağıdaki komutlarla listeleyebilirsiniz:
(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}
Create
yönteminin parametrelerini listelemek için aşağıdaki komutu kullanın.
(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}
ayrıca Win32_Share sınıfının Create yönteminin belgelerini de okuyabilirsiniz.
Ağ paylaşımını kaldırma
Win32_Shareile bir ağ paylaşımını kaldırabilirsiniz, ancak Win32_Share sınıfı yerine kaldırılacak belirli örneği almanız gerektiğinden işlem paylaşım oluşturma işleminden biraz farklıdır. Aşağıdaki örnek TempShare paylaşımını siler:
$wql = 'SELECT * from Win32_Share WHERE Name="TempShare"'
Invoke-CimMethod -MethodName Delete -Query $wql
Windows tarafından erişilebilir bir ağ sürücüsü bağlama
New-PSDrive
cmdlet'i bir ağ paylaşımına eşlenebilen bir PowerShell sürücüsü oluşturabilir.
New-PSDrive -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"
Ancak, bu şekilde oluşturulan sürücüler yalnızca oluşturuldukları PowerShell oturumunda kullanılabilir. PowerShell dışında (veya diğer PowerShell oturumlarıyla) kullanılabilen bir sürücüyü eşlemek için Kalıcı parametresini kullanmanız gerekir.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"
Not
Yükseltilmiş bir bağlamda çalışırken kalıcı olarak eşlenmiş sürücüler kullanılamayabilir. Bu, Windows UAC'nin varsayılan davranışıdır. Daha fazla bilgi için aşağıdaki makaleye bakın:
PowerShell