Bu cmdlet yalnızca Windows platformunda kullanılabilir.
Invoke-CimMethod cmdlet'i, Arguments parametresiyle belirtilen ad-değer çiftlerini kullanarak bir CIM sınıfının veya CIM örneğinin yöntemini çağırır.
InputObject parametresi belirtilmezse, cmdlet aşağıdaki yollardan biriyle çalışır:
ComputerName parametresi veya CimSession parametresi belirtilmezse, bu cmdlet bir Bileşen Nesne Modeli (COM) oturumu kullanarak yerel Windows Yönetim Araçları'nda (WMI) çalışır.
ComputerName parametresi veya CimSession parametresi belirtilirse, bu cmdlet ComputerName parametresi veya CimSession parametresi tarafından belirtilen CIM sunucusunda çalışır.
InputObject parametresi belirtilirse, cmdlet aşağıdaki yollardan biriyle çalışır:
ComputerName parametresi veya CimSession parametresi belirtilmezse, bu cmdlet giriş nesnesinden CIM oturumunu veya bilgisayar adını kullanır.
ComputerName parametresi veya CimSession parametresi belirtilirse, bu cmdlet CimSession parametre değerini veya ComputerName parametre değerini kullanır. Bu yaygın bir senaryo değildir.
Örnekler
Örnek 1: Yöntem çağırma
Bu örnek, Win32_Process sınıfının Terminate yöntemini çağırır.
$method = @{
Query = 'select * from Win32_Process where name like "notepad%"'
MethodName = "Terminate"
}
Invoke-CimMethod @method
Örnek 2: CIM örnek nesnesini kullanarak yöntem çağırma
Bu örnek CIM örneği nesnesini alır ve $x cmdlet'ini kullanarak Get-CimInstance adlı bir değişkende depolar. Değişkenin içeriği daha sonra cmdlet'i için Invoke-CimMethod olarak kullanılır.
GetOwner yöntemi, CimInstanceiçin çağrılır.
$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner
Örnek 3: Bağımsız değişkenleri kullanarak statik yöntem çağırma
Bu örnek, Arguments parametresini kullanarak adlı Create yöntemini çağırır.
Çağrılan yönteme geçirecek parametreleri belirtir. Bu parametrenin değerlerini bir karma tabloda depolanan ad-değer çiftleri olarak belirtin. Girilen değerlerin sırası önemli değildir.
Belirtilen CIM oturumunu kullanarak komutunu çalıştırır. CIM oturumunu içeren bir değişken veya New-CimSession veya Get-CimSession cmdlet'leri gibi CIM oturumunu oluşturan veya alan bir komut girin. Daha fazla bilgi için bkz. about_CimSession.
İşlemin gerçekleştirildiği CIM sınıfının adını belirtir. Bu parametre yalnızca statik yöntemler için kullanılır. PowerShell, sınıf adlarının listesini sağlamak için yerel WMI sunucusundan sınıfların listesini aldığından, sınıf listesine göz atmak için sekme tamamlama özelliğini kullanabilirsiniz.
CIM işlemini çalıştırmak istediğiniz bilgisayarın adını belirtir. Tam olarak belirtilmiş etki alanı adı (FQDN), NetBIOS adı veya IP adresi belirtebilirsiniz.
Bu parametreyi kullanırken, cmdlet WsMan protokolunu kullanarak belirtilen bilgisayarda geçici bir oturum oluşturur. Aksi takdirde, cmdlet işlemi Bileşen Nesne Modeli (COM) kullanarak yerel bilgisayarda gerçekleştirir.
Aynı bilgisayarda birden çok işlem gerçekleştirilirken daha iyi performans için CIM oturumu kullanarak bağlanın.
Bir yöntemi çağırmak için giriş olarak kullanılacak bir CIM örneği nesnesi belirtir. Bu parametre yalnızca örnek yöntemlerini çağırmak için kullanılabilir. Sınıf statik yöntemlerini çağırmak için Class parametresini veya CimClass parametresini kullanın.
Çağrılacak CIM yönteminin adını belirtir. Bu parametre zorunludur ve null veya boş olamaz. CIM sınıfının statik yöntemini çağırmak için ClassName veya CimClass parametresini kullanın.
CIM işlemi için ad alanını belirtir. Varsayılan ad alanı kök/CIMV2 . PowerShell, ad alanlarının listesini sağlamak üzere yerel WMI sunucusundan bir ad alanı listesi aldığından, ad alanları listesine göz atmak için sekme tamamlama özelliğini kullanabilirsiniz.
Cmdlet'in bilgisayardan yanıt bekleme süresini belirtir. Varsayılan olarak, değer 0'dır ve bu da cmdlet'in sunucu için varsayılan zaman aşımı değerini kullandığı anlamına gelir.
OperationTimeoutSec parametresi 3 dakikalık varsayılan bağlantı yeniden deneme zaman aşımından küçük bir değere ayarlanırsa, OperationTimeoutSec parametresinin değerinden daha uzun süren ağ hataları kurtarılamaz.
CIM sunucusunda çalıştırılacak sorguyu belirtir. Sorgunun sonucu olarak alınan örneklerde bir yöntem çağrılır.
QueryDialect parametresini kullanarak sorgu diyalektini belirtebilirsiniz.
Belirtilen değer çift tırnak ("), tek tırnak (') veya ters eğik çizgi (\) içeriyorsa, bu karakterlerin önüne ters eğik çizgi (\) karakteri ekleyerek bu karakterlerden kaçmalısınız. Belirtilen değer WQL LIKE işlecini kullanıyorsa, bunları köşeli ayraç içine alarak ([]): yüzde (%), alt çizgi (_) veya köşeli ayraç ([) açarak aşağıdaki karakterlerden kaçmalısınız.
Kaynak sınıfının veya örneğinin tekdüzen kaynak tanımlayıcısını (URI) belirtir.
URI, bir bilgisayardaki diskler veya işlemler gibi belirli bir kaynak türünü tanımlamak için kullanılır.
URI bir ön ek ve kaynağın yolundan oluşur. Örneğin:
Varsayılan olarak, bu parametreyi belirtmezseniz, DMTF standart kaynak URI'sini http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ kullanılır ve sınıf adı eklenir.
ResourceUri yalnızca WSMan protokolü kullanılarak oluşturulan CIM oturumlarıyla veya WSMan kullanarak bir CIM oturumu oluşturan ComputerName parametresi belirtilirken kullanılabilir.
ComputerName parametresini belirtmeden bu parametreyi belirttiğinizde veya DCOM protokolü kullanılarak oluşturulan bir CIM oturumu belirttiğinizde bir hata alırsınız. DCOM protokolü ResourceUri parametresini desteklemez.
hem ResourceUri parametresi hem de Filter parametresi belirtilirse, Filter parametresi yoksayılır.
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.