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 参数将验证 Prop1Prop2 是否实际存在,以及密钥是否标记正确。

不能将 ComputerNameCimSession 参数与 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-CimSessionGet-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 时,无法使用 CimSessionComputerName

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。

输出

CimInstance

此 cmdlet 返回包含 CIM 实例信息的对象。

备注

PowerShell 包含以下别名 New-CimInstance

  • Windows:
    • ncim

此 cmdlet 仅在 Windows 平台上可用。