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>]
说明
此 cmdlet 仅在 Windows 平台上可用。
cmdlet New-CimInstance
基于本地计算机或远程计算机上的类定义创建 CIM 类的实例。 默认情况下, New-CimInstance
cmdlet 在本地计算机上创建实例。
示例
示例 1:Create CIM 类的实例
此示例在计算机上的根/cimv2 命名空间中创建名为 win32_environment 的 CIM 类的实例。
New-CimInstance -ClassName Win32_Environment -Property @{Name="testvar";VariableValue="testvalue";UserName="domain\user"}
如果 类不存在、属性错误或服务器拒绝调用,则不执行客户端验证。 如果成功创建实例,则 cmdlet 将输出新创建的实例。
示例 2:使用类架构Create 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:在客户端上Create动态实例
此示例在客户端计算机上创建名为 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 :
然后,该 Get-CimInstance
cmdlet 检索特定的单个实例。 cmdlet Invoke-CimMethod
在检索到的实例上调用 GetOwner 方法。
示例 4:为特定命名空间的 CIM 类Create实例
此示例在命名空间根/某处获取名为 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 是否实际存在,以及密钥是否标记正确。
不能将 ComputerName 或 CimSession 参数与 ClientOnly 参数一起使用。
参数
-CimClass
指定表示实例类型的 CIM 类对象。 Get-CimClass
使用 cmdlet 从计算机检索类声明。 使用此参数可以更好地进行客户端架构验证。
Type: | CimClass |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-CimSession
使用指定的 CIM 会话运行命令。 输入包含 CIM 会话的变量,或用于创建或获取 CIM 会话的命令,例如 New-CimSession
或 Get-CimSession
cmdlet。 有关详细信息,请参阅 about_CimSession。
Type: | CimSession[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ClassName
指定操作创建实例的 CIM 类的名称。 注意:可以使用选项卡补全来浏览类列表,因为 PowerShell 从本地 WMI 服务器获取类列表以提供类名列表。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ClientOnly
指示仅在 PowerShell 中创建实例,而不转到 CIM 服务器。 可以使用此参数创建内存中 CIM 实例,以便在后续 PowerShell 操作中使用。
Type: | SwitchParameter |
Aliases: | Local |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
指定要运行 CIM 操作的计算机的名称。 可以 (FQDN) 指定完全限定的域名、NetBIOS 名称或 IP 地址。
如果指定此参数,cmdlet 将使用 WSMan 协议创建与指定计算机的临时会话。
如果未指定此参数,cmdlet 将使用组件对象模型 (COM) 在本地计算机上执行操作。
如果在同一台计算机上执行多个操作,则使用 CIM 会话进行连接可提供更好的性能。
Type: | String[] |
Aliases: | CN, ServerName |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Key
指定用作键的属性。 指定 Key 时,无法使用 CimSession 和 ComputerName。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Namespace
为新实例指定 类的命名空间。 默认命名空间为 root/cimv2。 可以使用选项卡补全来浏览命名空间列表,因为 PowerShell 从本地 WMI 服务器获取命名空间列表以提供命名空间列表。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OperationTimeoutSec
指定 cmdlet 等待 CIM 服务器响应的时间量。 默认情况下,此参数的值为 0,这意味着 cmdlet 使用服务器的默认超时值。 如果将 OperationTimeoutSec 参数设置为小于 3 分钟可靠连接重试超时的值,则持续超过 OperationTimeoutSec 参数值的网络故障不可恢复,因为服务器上的操作在客户端重新连接之前会超时。
Type: | UInt32 |
Aliases: | OT |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
使用哈希表 (名称/值对) 指定 CIM 实例的属性。
如果指定 CimClass 参数,则 New-CimInstance
cmdlet 会在客户端上执行属性验证,以确保指定的属性与服务器上的类声明一致。 如果未指定 CimClass 参数,则会在服务器上完成属性验证。
Type: | IDictionary |
Aliases: | Arguments |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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 参数。
Type: | Uri |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 此 cmdlet 未运行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
None
无法通过管道将对象传递给此 cmdlet。
输出
此 cmdlet 返回包含 CIM 实例信息的对象。
备注
PowerShell 包含以下别名 New-CimInstance
:
- Windows:
ncim
此 cmdlet 仅在 Windows 平台上可用。