New-CimInstance

Crea un'istanza CIM.

Sintassi

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>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il New-CimInstance cmdlet crea un'istanza di una classe CIM basata sulla definizione della classe nel computer locale o in un computer remoto. Per impostazione predefinita, il New-CimInstance cmdlet crea un'istanza nel computer locale.

Esempio

Esempio 1: Creare un'istanza di una classe CIM

Questo esempio crea un'istanza di una classe CIM denominata win32_environment nello spazio dei nomi root/cimv2 nel computer.

New-CimInstance -ClassName Win32_Environment -Property @{Name="testvar";VariableValue="testvalue";UserName="domain\user"}

Non viene eseguita alcuna convalida lato client se la classe non esiste, le proprietà non sono errate o se il server rifiuta la chiamata. Se l'istanza viene creata correttamente, il cmdlet restituisce l'istanza appena creata.

Esempio 2: Creare un'istanza di una classe CIM usando uno schema di classe

In questo esempio viene recuperato un oggetto classe CIM e archiviato in una variabile denominata $class. Il contenuto della variabile viene quindi passato al New-CimInstance cmdlet .

$class = Get-CimClass -ClassName Win32_Environment
New-CimInstance -CimClass $class -Property @{Name="testvar";VariableValue="testvalue";UserName="Contoso\User1"}

Esempio 3: Creare un'istanza dinamica nel client

In questo esempio viene creata un'istanza dinamica di una classe CIM denominata Win32_Process nel computer client senza ottenere l'istanza dal server. La nuova istanza viene archiviata nella variabile $a. Questa istanza dinamica può essere usata per eseguire operazioni se l'istanza con questa chiave esiste nel server.

$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 :

Il Get-CimInstance cmdlet recupera quindi una singola istanza specifica. Il Invoke-CimMethod cmdlet chiama il metodo GetOwner nell'istanza recuperata.

Esempio 4: Creare un'istanza per una classe CIM di uno spazio dei nomi specifico

Questo esempio ottiene un'istanza di una classe CIM denominata MSFT_Something nella radice dello spazio dei nomi o in un punto qualsiasi e la archivia in una variabile denominata $class. La variabile viene passata al New-CimInstance cmdlet per creare una nuova istanza CIM ed eseguire convalide lato client nella nuova istanza.

$class = Get-CimClass -ClassName MSFT_Something -Namespace root/somewhere
New-CimInstance -CimClass $class -Property @{"Prop1"=1;"Prop2"="value"} -ClientOnly

In questo esempio, l'uso del parametro CimClass anziché del parametro ClassName convalida che Prop1 e Prop2 esistano effettivamente e che le chiavi siano contrassegnate correttamente.

Non è possibile utilizzare il parametro ComputerName o CimSession con il parametro ClientOnly .

Parametri

-CimClass

Specifica un oggetto classe CIM che rappresenta il tipo dell'istanza. Usare il Get-CimClass cmdlet per recuperare la dichiarazione di classe da un computer. L'uso di questo parametro comporta una migliore convalida dello schema lato client.

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

-CimSession

Esegue il comando usando la sessione CIM specificata. Immettere una variabile contenente la sessione CIM o un comando che crea o ottiene la sessione CIM, ad esempio i New-CimSession cmdlet o Get-CimSession . Per altre informazioni, vedere about_CimSession.

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

-ClassName

Specifica il nome della classe CIM di cui l'operazione crea un'istanza. NOTA: è possibile usare il completamento della scheda per esplorare l'elenco delle classi, perché PowerShell ottiene un elenco di classi dal server WMI locale per fornire un elenco di nomi di classe.

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

-ClientOnly

Indica che l'istanza viene creata solo in PowerShell senza passare al server CIM. È possibile usare questo parametro per creare un'istanza CIM in memoria da usare nelle successive operazioni di PowerShell.

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

-ComputerName

Specifica il nome del computer in cui si desidera eseguire l'operazione CIM. È possibile specificare un nome di dominio completo (FQDN), un nome NetBIOS o un indirizzo IP.

Se si specifica questo parametro, il cmdlet crea una sessione temporanea nel computer specificato usando il protocollo WSMan.

Se non si specifica questo parametro, il cmdlet esegue l'operazione nel computer locale usando Component Object Model (COM).

Se vengono eseguite più operazioni nello stesso computer, la connessione tramite una sessione CIM offre prestazioni migliori.

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

-Confirm

Richiede conferma prima di eseguire il cmdlet.

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

-Key

Specifica le proprietà utilizzate come chiavi. Non è possibile usare CimSession e ComputerName quando si specifica Key .

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

-Namespace

Specifica lo spazio dei nomi della classe per la nuova istanza. Lo spazio dei nomi predefinito è root/cimv2. È possibile usare il completamento della scheda per esplorare l'elenco degli spazi dei nomi, perché PowerShell ottiene un elenco di spazi dei nomi dal server WMI locale per fornire l'elenco degli spazi dei nomi.

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

-OperationTimeoutSec

Specifica la quantità di tempo in cui il cmdlet attende una risposta dal server CIM. Per impostazione predefinita, il valore di questo parametro è 0, il che significa che il cmdlet usa il valore di timeout predefinito per il server. Se il parametro OperationTimeoutSec è impostato su un valore inferiore al timeout di tentativo di connessione affidabile di 3 minuti, gli errori di rete che durano più del valore del parametro OperationTimeoutSec non sono recuperabili, perché l'operazione sul server scade prima che il client possa riconnettersi.

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

-Property

Specifica le proprietà dell'istanza CIM usando una tabella hash (coppie nome-valore).

Se si specifica il parametro CimClass , il New-CimInstance cmdlet esegue una convalida delle proprietà nel client per assicurarsi che le proprietà specificate siano coerenti con la dichiarazione di classe nel server. Se il parametro CimClass non viene specificato, la convalida della proprietà viene eseguita nel server.

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

-ResourceUri

Specifica l'URI (Uniform Resource Identifier) della classe di risorse o dell'istanza di risorsa. L'URI viene usato per identificare un tipo specifico di risorsa, ad esempio i dischi o i processi, in un computer specifico.

Un URI è costituito da un prefisso e un percorso di una risorsa. Ad esempio:

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

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

Per impostazione predefinita, se non si specifica questo parametro, viene usato l'URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ della risorsa standard DMTF e il nome della classe viene aggiunto.

ResourceURI può essere usato solo con le sessioni CIM create usando il protocollo WSMan o quando si specifica il parametro ComputerName , che crea una sessione CIM usando WSMan. Se si specifica questo parametro senza specificare il parametro ComputerName o se si specifica una sessione CIM creata usando il protocollo DCOM, verrà visualizzato un errore, perché il protocollo DCOM non supporta il parametro ResourceURI .

Se vengono specificati sia il parametro ResourceUri che il parametro Filter , il parametro Filter viene ignorato.

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

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

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

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

CimInstance

Questo cmdlet restituisce un oggetto contenente le informazioni sull'istanza CIM.

Note

PowerShell include gli alias seguenti per New-CimInstance:

  • Windows:
    • ncim

Questo cmdlet è disponibile solo nelle piattaforme Windows.