New-CimInstance
建立 CIM 實例。
語法
New-CimInstance
[-ClassName] <String>
[-Key <String[]>]
[[-Property] <IDictionary>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-ComputerName <String[]>]
[-ClientOnly]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-CimInstance
[-ClassName] <String>
[-Key <String[]>]
[[-Property] <IDictionary>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
-CimSession <CimSession[]>
[-ClientOnly]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-CimInstance
-ResourceUri <Uri>
[-Key <String[]>]
[[-Property] <IDictionary>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
-CimSession <CimSession[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-CimInstance
-ResourceUri <Uri>
[-Key <String[]>]
[[-Property] <IDictionary>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-ComputerName <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-CimInstance
[-CimClass] <CimClass>
[[-Property] <IDictionary>]
[-OperationTimeoutSec <UInt32>]
-CimSession <CimSession[]>
[-ClientOnly]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-CimInstance
[-CimClass] <CimClass>
[[-Property] <IDictionary>]
[-OperationTimeoutSec <UInt32>]
[-ComputerName <String[]>]
[-ClientOnly]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
此 Cmdlet 僅適用於 Windows 平臺。
Cmdlet New-CimInstance
會根據本機計算機或遠端電腦上的類別定義,建立 CIM 類別的實例。 根據預設, New-CimInstance
Cmdlet 會在本機計算機上建立實例。
範例
範例 1:建立 CIM 類別的實例
此範例會在電腦上的 root/cimv2 命名空間中,建立名為 win32_environment 的 CIM 類別實例。
New-CimInstance -ClassName Win32_Environment -Property @{Name="testvar";VariableValue="testvalue";UserName="domain\user"}
如果類別不存在、屬性錯誤,或伺服器拒絕呼叫,則不會執行客戶端驗證。 如果成功建立實例,Cmdlet 會輸出新建立的實例。
範例 2:使用類別架構建立 CIM 類別的實例
這個範例會擷取 CIM 類別物件,並將其儲存在名為的 $class
變數中。 變數的內容接著會傳遞至 New-CimInstance
Cmdlet。
$class = Get-CimClass -ClassName Win32_Environment
New-CimInstance -CimClass $class -Property @{Name="testvar";VariableValue="testvalue";UserName="Contoso\User1"}
範例 3:在用戶端上建立動態實例
此範例會在用戶端計算機上建立名為 Win32_Process 之 CIM 類別的動態實例,而不需要從伺服器取得實例。 新的實例會儲存在變數 $a
中。 如果具有此索引鍵的實例存在於伺服器上,這個動態實例就可以用來執行作業。
$a = New-CimInstance -ClassName Win32_Process -Property @{Handle=0} -Key Handle -ClientOnly
Get-CimInstance -CimInstance $a
Invoke-CimMethod -CimInstance $a -MethodName GetOwner
ProcessId Name HandleCount WorkingSetSize VirtualSize
--------- ---- ----------- -------------- -----------
0 System Idle Process 0 8192 8192
Domain :
ReturnValue : 2
User :
PSComputerName :
Cmdlet Get-CimInstance
接著會擷取特定的單一實例。 Cmdlet 會在Invoke-CimMethod
擷取的實例上呼叫 GetOwner 方法。
範例 4:為特定命名空間的 CIM 類別建立實例
這個範例會取得命名空間根/某處名為 MSFT_Something 的 CIM 類別實例,並將它儲存在名為的$class
變數中。 變數會傳遞至 New-CimInstance
Cmdlet,以建立新的 CIM 實例,並在新的實例上執行客戶端驗證。
$class = Get-CimClass -ClassName MSFT_Something -Namespace root/somewhere
New-CimInstance -CimClass $class -Property @{"Prop1"=1;"Prop2"="value"} -ClientOnly
在此範例中 ,使用 CimClass 參數,而不是 ClassName 參數會驗證 Prop1 和 Prop2 確實存在,而且索引鍵已正確標示。
您無法搭配 ClientOnly 參數使用 ComputerName 或 CimSession 參數。
參數
-CimClass
指定代表實例類型的 CIM 類別物件。 Get-CimClass
使用 Cmdlet 從電腦擷取類別宣告。 使用此參數會導致更好的客戶端架構驗證。
類型: | CimClass |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-CimSession
使用指定的 CIM 作業階段執行命令。 輸入包含 CIM 會話的變數,或建立或取得 CIM 會話的命令,例如 New-CimSession
或 Get-CimSession
Cmdlet。 如需詳細資訊,請參閱 about_CimSession。
類型: | CimSession[] |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-ClassName
指定作業建立實例的 CIM 類別名稱。 注意:您可以使用索引標籤自動完成來瀏覽類別清單,因為PowerShell會從本機 WMI 伺服器取得類別清單,以提供類別名稱的清單。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-ClientOnly
表示實例只會在PowerShell中建立,而不需要前往CIM伺服器。 您可以使用此參數來建立記憶體內部 CIM 實例,以供後續的 PowerShell 作業使用。
類型: | SwitchParameter |
別名: | Local |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ComputerName
指定您要執行 CIM 作業的電腦名稱。 您可以指定完整功能變數名稱 (FQDN)、NetBIOS 名稱或IP位址。
如果您指定此參數,Cmdlet 會使用 WSMan 通訊協定,為指定的電腦建立暫存會話。
如果您未指定此參數,Cmdlet 會使用元件物件模型 (COM) 在本機計算機上執行作業。
如果在相同電腦上執行多個作業,則使用 CIM 作業進行連線可提供更佳的效能。
類型: | String[] |
別名: | CN, ServerName |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Confirm
執行 Cmdlet 之前先提示您確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Key
指定做為索引鍵的屬性。 指定 Key 時,無法使用 CimSession 和 ComputerName。
類型: | String[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Namespace
指定新實例之 類別的命名空間。 默認命名空間為 root/cimv2。 您可以使用索引標籤自動完成來瀏覽命名空間清單,因為 PowerShell 會從本機 WMI 伺服器取得命名空間清單,以提供命名空間清單。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-OperationTimeoutSec
指定 Cmdlet 等候 CIM 伺服器回應的時間量。 根據預設,此參數的值是0,這表示 Cmdlet 會使用伺服器的預設逾時值。 如果 OperationTimeoutSec 參數設定為小於強固連線重試逾時 3 分鐘的值,則無法復原最後超過 OperationTimeoutSec 參數值的網路失敗,因為伺服器上的作業會在用戶端重新連線之前逾時。
類型: | UInt32 |
別名: | OT |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Property
使用哈希表指定 CIM 實例的屬性(名稱/值組)。
如果您指定 CimClass 參數, New-CimInstance
Cmdlet 會在用戶端上執行屬性驗證,以確保指定的屬性與伺服器上的類別宣告一致。 如果未指定 CimClass 參數,則會在伺服器上完成屬性驗證。
類型: | IDictionary |
別名: | Arguments |
Position: | 1 |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-ResourceUri
指定資源類別或實例的資源統一資源標識碼(URI)。 URI 可用來識別電腦上的特定資源類型,例如磁碟或進程。
URI 包含前置詞和資源的路徑。 例如:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings
根據預設,如果您未指定此參數,則會使用 DMTF 標準資源 URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/
,並將類別名稱附加至其中。
ResourceURI 只能與使用 WSMan 通訊協定建立的 CIM 會話搭配使用,或在指定 ComputerName 參數時使用 WSMan 建立 CIM 會話。 如果您在未指定 ComputerName 參數的情況下指定此參數,或指定使用 DCOM 通訊協定建立的 CIM 會話,您將會收到錯誤,因為 DCOM 通訊協定不支援 ResourceURI 參數。
如果同時 指定 ResourceUri 參數和 Filter 參數, 則會忽略 Filter 參數。
類型: | Uri |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳回包含 CIM 實例信息的物件。
備註
PowerShell 包含下列的 New-CimInstance
別名:
- Windows:
ncim
此 Cmdlet 僅適用於 Windows 平臺。