当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 新 CimInstance (CimCmdlet)

作者:精品下载站 日期:2024-12-14 02:25:53 浏览:15 分类:玩电脑

新 CimInstance (CimCmdlet)


New-CimInstance

模块 :CimCmdlets

创建 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 平台。

New-CimInstance cmdlet 根据本地计算机或远程计算机上的类定义创建 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 :

然后,Get-CimInstance cmdlet 检索特定的单个实例。 Invoke-CimMethod cmdlet 在检索到的实例上调用 GetOwner 方法。

示例 4:为特定命名空间的 CIM 类创建实例

此示例获取命名空间 root/somewhere 中名为 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 从计算机检索类声明。使用此参数可以实现更好的客户端模式验证。

类型 :

CimClass

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-CimSession

使用指定的 CIM 会话运行命令。输入包含 CIM 会话的变量,或创建或获取 CIM 会话的命令,例如 New-CimSessionGet-CimSession cmdlet。有关详细信息,请参阅 about_CimSession。

类型 :

CimSession[]

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-ClassName

指定操作创建其实例的 CIM 类的名称。注意:您可以使用制表符补全来浏览类列表,因为 PowerShell 从本地 WMI 服务器获取类列表以提供类名称列表。

类型 :

String

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-ClientOnly

表示仅在PowerShell中创建实例,而不访问CIM服务器。您可以使用此参数创建内存中 CIM 实例,以供后续 PowerShell 操作使用。

类型 :

SwitchParameter

别名:

Local

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ComputerName

指定要运行 CIM 操作的计算机的名称。您可以指定完全限定域名 (FQDN)、NetBIOS 名称或 IP 地址。

如果指定此参数,cmdlet 将使用 WSMan 协议创建与指定计算机的临时会话。

如果不指定此参数,cmdlet 将使用组件对象模型 (COM) 在本地计算机上执行操作。

如果在同一台计算机上执行多个操作,使用 CIM 会话进行连接可提供更好的性能。

类型 :

String[]

别名:

CN, ServerName

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Confirm

在运行 cmdlet 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Key

指定用作键的属性。指定Key时,无法使用CimSessionComputerName

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Namespace

指定新实例的类的命名空间。默认命名空间是root/cimv2。您可以使用制表符补全来浏览命名空间列表,因为 PowerShell 从本地 WMI 服务器获取命名空间列表来提供命名空间列表。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-OperationTimeoutSec

指定 cmdlet 等待 CIM 服务器响应的时间。默认情况下,此参数的值为 0,这意味着 cmdlet 使用服务器的默认超时值。如果 OperationTimeoutSec 参数设置为小于 3 分钟的稳健连接重试超时的值,则持续时间超过 OperationTimeoutSec 参数值的网络故障将无法恢复,因为在客户端重新连接之前服务器上的操作超时。

类型 :

UInt32

别名:

OT

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Property

使用哈希表(名称-值对)指定 CIM 实例的属性。

如果指定 CimClass 参数,则 New-CimInstance cmdlet 在客户端上执行属性验证,以确保指定的属性与服务器上的类声明一致。如果未指定CimClass参数,则属性验证在服务器上完成。

类型 :

词典

别名:

Arguments

位置:

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 参数。

类型 :

乌里

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-WhatIf

显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。

类型 :

SwitchParameter

别名:

wi

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

您无法通过管道将对象传递到此 cmdlet。

输出

CimInstance

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

笔记

PowerShell 包含 New-CimInstance 的以下别名:

  • Windows:

      ncim

    此 cmdlet 仅适用于 Windows 平台。

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯