Invoke-CimMethod

Wywołuje metodę klasy CIM.

Składnia

Invoke-CimMethod
      [-ClassName] <String>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ClassName] <String>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -ResourceUri <Uri>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ResourceUri <Uri>]
      [-InputObject] <CimInstance>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ResourceUri <Uri>]
      [-InputObject] <CimInstance>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -ResourceUri <Uri>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-CimClass] <CimClass>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-CimClass] <CimClass>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -Query <String>
      [-QueryDialect <String>]
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -Query <String>
      [-QueryDialect <String>]
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Opis

To polecenie cmdlet jest dostępne tylko na platformie Windows.

Polecenie Invoke-CimMethod cmdlet wywołuje metodę klasy CIM lub wystąpienia modelu CIM przy użyciu par name-value określonych przez parametr Arguments .

Jeśli nie określono parametru InputObject , polecenie cmdlet działa w jeden z następujących sposobów:

  • Jeśli nie określono parametru ComputerName ani parametru CimSession , to polecenie cmdlet działa w lokalnej instrumentacji zarządzania Windows (WMI) przy użyciu sesji modelu obiektów składników (COM).
  • Jeśli określono parametr ComputerName lub parametr CimSession, to polecenie cmdlet działa względem serwera CIM określonego przez parametr ComputerName lub cimSession parametru.

Jeśli określono parametr InputObject, polecenie cmdlet działa na jeden z następujących sposobów:

  • Jeśli nie określono ani parametru ComputerName , ani parametru CimSession , to to polecenie cmdlet używa sesji modelu ciM lub nazwy komputera z obiektu wejściowego.
  • Jeśli określono parametr ComputerName lub CimSession, to to polecenie cmdlet używa wartości parametru CimSession lub Wartości parametru ComputerName. Nie jest to typowy scenariusz.

Przykłady

Przykład 1: Wywoływanie metody

W tym przykładzie wywoływana jest metoda Terminate klasy Win32_Process.

Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"

Przykład 2. Wywoływanie metody przy użyciu obiektu wystąpienia modelu CIM

Ten przykład pobiera obiekt wystąpienia modelu CIM i przechowuje go w zmiennej o nazwie $x przy użyciu Get-CimInstance polecenia cmdlet . Zawartość zmiennej jest następnie używana jako element InputObject dla Invoke-CimMethod polecenia cmdlet . Metoda GetOwner jest wywoływana dla klasy CimInstance.

$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner

Przykład 3. Wywoływanie metody statycznej przy użyciu argumentów

W tym przykładzie wywoływana jest metoda Create o nazwie przy użyciu parametru Arguments .

Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{
  CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32"
}

Przykład 4. Weryfikacja po stronie klienta

W tym przykładzie jest wykonywana weryfikacja po stronie klienta dla metody xyz przez przekazanie obiektu CimClass do Invoke-CimMethodklasy .

$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }

Parametry

-Arguments

Określa parametry, które mają być przekazywane do wywoływanej metody. Określ wartości tego parametru jako pary name-value przechowywane w tabeli skrótów. Kolejność wprowadzonych wartości nie jest ważna.

Type:IDictionary
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CimClass

Określa obiekt klasy CIM reprezentujący definicję klasy MODELU CIM na serwerze. Użyj tego parametru podczas wywoływania metody statycznej klasy.

Możesz użyć Get-CimClass polecenia cmdlet , aby pobrać definicję klasy z serwera.

Użycie tego parametru powoduje lepsze weryfikacje schematu po stronie klienta.

Type:CimClass
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CimSession

Uruchamia polecenie przy użyciu określonej sesji modelu CIM. Wprowadź zmienną zawierającą sesję modelu CIM lub polecenie, które tworzy lub pobiera sesję modelu CIM, na przykład New-CimSession polecenia cmdlet lub Get-CimSession . Aby uzyskać więcej informacji, zobacz about_CimSession.

Type:CimSession[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ClassName

Określa nazwę klasy CIM, dla której ma być wykonywana operacja. Ten parametr jest używany tylko dla metod statycznych. Aby przeglądać listę klas, można użyć uzupełniania tabulatorów, ponieważ program PowerShell pobiera listę klas z lokalnego serwera WMI, aby podać listę nazw klas.

Type:String
Aliases:Class
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ComputerName

Określa nazwę komputera, na którym chcesz uruchomić operację CIM. Można określić w pełni kwalifikowaną nazwę domeny (FQDN), nazwę NetBIOS lub adres IP.

W przypadku korzystania z tego parametru polecenie cmdlet tworzy sesję tymczasową na określonym komputerze przy użyciu protokołu WsMan. W przeciwnym razie polecenie cmdlet wykonuje operację na komputerze lokalnym przy użyciu modelu obiektów składników (COM).

Połączenie przy użyciu sesji modelu CIM w celu uzyskania lepszej wydajności, gdy na tym samym komputerze jest wykonywanych wiele operacji.

Type:String[]
Aliases:CN, ServerName
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Określa obiekt wystąpienia modelu CIM, który ma być używany jako dane wejściowe w celu wywołania metody. Ten parametr może służyć tylko do wywoływania metod wystąpienia. Aby wywołać metody statyczne klasy, użyj parametru Class lub parametru CimClass .

Type:CimInstance
Aliases:CimInstance
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-MethodName

Określa nazwę metody CIM, która ma być wywoływana. Ten parametr jest obowiązkowy i nie może być pusty ani mieć wartości null. Aby wywołać metodę statyczną klasy CIM, użyj parametru ClassName lub CimClass .

Type:String
Aliases:Name
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Namespace

Określa przestrzeń nazw dla operacji CIM. Domyślna przestrzeń nazw to root/cimv2. Za pomocą uzupełniania karty można przeglądać listę przestrzeni nazw, ponieważ program PowerShell pobiera listę przestrzeni nazw z lokalnego serwera WMI w celu udostępnienia listy przestrzeni nazw.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OperationTimeoutSec

Określa czas oczekiwania polecenia cmdlet na odpowiedź z komputera. Domyślnie wartość to 0, co oznacza, że polecenie cmdlet używa domyślnej wartości limitu czasu dla serwera.

Jeśli parametr OperationTimeoutSec jest ustawiony na wartość mniejszą niż domyślny limit czasu ponawiania próby połączenia wynosi 3 minuty, błędy sieci, które trwają dłużej niż wartość parametru OperationTimeoutSec, nie można odzyskać.

Type:UInt32
Aliases:OT
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

Określa zapytanie do uruchomienia na serwerze CIM. Metoda jest wywoływana na wystąpieniach odebranych w wyniku zapytania. Dialekt zapytania można określić przy użyciu parametru QueryDialect .

Jeśli określona wartość zawiera cudzysłowy podwójne ("), apostrofy (') lub ukośnik odwrotny (\), należy użyć tych znaków, prefiksując je znakiem ukośnika odwrotnego (\). Jeśli określona wartość używa operatora LIKE WQL, należy użyć następujących znaków, ujęcie ich w nawiasy kwadratowe ([]): procent (%), podkreślenie (_) lub otwierając nawias kwadratowy ([).

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-QueryDialect

Określa język zapytań używany dla parametru Query. Dopuszczalne wartości tego parametru to: WQL lub CQL.

Wartość domyślna to WQL.

Type:String
Position:Named
Default value:WQL
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ResourceUri

Określa identyfikator URI (resource uniform resource identifier) klasy zasobów lub wystąpienia. Identyfikator URI służy do identyfikowania określonego typu zasobu, takiego jak dyski lub procesy, na komputerze.

Identyfikator URI składa się z prefiksu i ścieżki do zasobu. Przykład:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings

Domyślnie, jeśli nie określisz tego parametru, jest używany standardowy identyfikator URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ zasobu DMTF, a nazwa klasy jest dołączana do niego.

Identyfikator ResourceURI może być używany tylko z sesjami modelu CIM utworzonymi przy użyciu protokołu WSMan lub podczas określania parametru ComputerName , który tworzy sesję modelu CIM przy użyciu narzędzia WSMan.

Po określeniu tego parametru bez określania parametru ComputerName lub po określeniu sesji modelu CIM utworzonej przy użyciu protokołu DCOM występuje błąd. Protokół DCOM nie obsługuje parametru ResourceURI .

Jeśli określono zarówno parametr ResourceUri , jak i parametr Filter , parametr Filter zostanie zignorowany.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

CimClass

Możesz przekazać do tego polecenia cmdlet klasę CIM.

CimInstance

Możesz przekazać wystąpienie modelu CIM do tego polecenia cmdlet.

Dane wyjściowe

PSCustomObject

To polecenie cmdlet zwraca obiekt.

Uwagi

Program PowerShell zawiera następujące aliasy dla programu Invoke-CimMethod:

  • Windows:
    • icim

To polecenie cmdlet jest dostępne tylko na platformach windows.