Set-WmiInstance

既存の Windows Management Instrumentation (WMI) クラスのインスタンスを作成または更新します。

構文

Set-WmiInstance
   [-Class] <String>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   -InputObject <ManagementObject>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-ThrottleLimit <Int32>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   -Path <String>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

このコマンドレットは Set-WmiInstance 、既存の Windows Management Instrumentation (WMI) クラスのインスタンスを作成または更新します。 作成または更新されたインスタンスは、WMI リポジトリに書き込まれます。

Windows PowerShell 3.0 で導入された新しい CIM コマンドレットは、WMI コマンドレットと同じタスクを実行します。 CIM コマンドレットは、WS-Management (WSMan) 標準と共通情報モデル (CIM) 標準に準拠しています。 これにより、コマンドレットは同じ手法を使用して、Windows ベースのコンピューターと他のオペレーティング システムを実行しているコンピューターを管理できます。 使用するSet-WmiInstance代わりに、Set-CimInstance コマンドレットまたは New-CimInstance コマンドレットの使用を検討してください。

例 1: WMI ログ レベルを設定する

Set-WmiInstance -Class Win32_WMISetting -Argument @{LoggingLevel=2}

__GENUS                        : 2
__CLASS                        : Win32_WMISetting
__SUPERCLASS                   : CIM_Setting
__DYNASTY                      : CIM_Setting
__RELPATH                      : Win32_WMISetting=@
__PROPERTY_COUNT               : 27
__DERIVATION                   : {CIM_Setting}
__SERVER                       : SYSTEM01
__NAMESPACE                    : root\cimv2
__PATH                         : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace      : \\root\cimv2
ASPScriptEnabled               : False
AutorecoverMofs                : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X                 :
BackupInterval                 :
BackupLastTime                 :
BuildVersion                   : 6001.18000
Caption                        :
DatabaseDirectory              : C:\Windows\system32\wbem\repository
DatabaseMaxSize                :
Description                    :
EnableAnonWin9xConnections     :
EnableEvents                   : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects   :
HighThresholdOnEvents          : 20000000
InstallationDirectory          : C:\Windows\system32\wbem
LastStartupHeapPreallocation   :
LoggingDirectory               : C:\Windows\system32\wbem\Logs\
LoggingLevel                   : 2
LowThresholdOnClientObjects    :
LowThresholdOnEvents           : 10000000
MaxLogFileSize                 : 65536
MaxWaitOnClientObjects         :
MaxWaitOnEvents                : 2000
MofSelfInstallDirectory        :
SettingID                      :

このコマンドは、WMI のログ レベルを 2 に設定します。 このコマンドは、設定するプロパティと値を引数パラメーターで値ペアと見なして渡します。 このパラメーターは、構築によって定義されたハッシュ テーブルを @{property = value} 受け取ります。 返されるクラス情報には、新しい値が反映されます。

例 2: 環境変数とその値を作成する

Set-WmiInstance -Class win32_environment -Argument @{Name="testvar";VariableValue="testvalue";UserName="<SYSTEM>"}

__GENUS          : 2
__CLASS          : Win32_Environment
__SUPERCLASS     : CIM_SystemResource
__DYNASTY        : CIM_ManagedSystemElement
__RELPATH        : Win32_Environment.Name="testvar",UserName="<SYSTEM>"
__PROPERTY_COUNT : 8
__DERIVATION     : {CIM_SystemResource, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER         : SYSTEM01
__NAMESPACE      : root\cimv2
__PATH           : \\SYSTEM01\root\cimv2:Win32_Environment.Name="testvar",UserName="<SYSTEM>"
Caption          : <SYSTEM>\testvar
Description      : <SYSTEM>\testvar
InstallDate      :
Name             : testvar
Status           : OK
SystemVariable   : True
UserName         : <SYSTEM>
VariableValue    : testvalue

このコマンドは、値 testvalue を持つ testvar 環境変数を作成します。 これを行うには、Win32_Environment WMI クラスの新しいインスタンスを作成します。 この操作には適切な資格情報が必要であり、新しい環境変数を表示するには Windows PowerShell を再起動する必要がある場合があります。

例 3: 複数のリモート コンピューターの WMI ログ レベルを設定する

Set-WmiInstance -Class Win32_WMISetting -Argument @{LoggingLevel=2} -Computername "system01", "system02", "system03"

__GENUS                        : 2
__CLASS                        : Win32_WMISetting
__SUPERCLASS                   : CIM_Setting
__DYNASTY                      : CIM_Setting
__RELPATH                      : Win32_WMISetting=@
__PROPERTY_COUNT               : 27
__DERIVATION                   : {CIM_Setting}
__SERVER                       : SYSTEM01
__NAMESPACE                    : root\cimv2
__PATH                         : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace      : \\root\cimv2
ASPScriptEnabled               : False
AutorecoverMofs                : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X                 :
BackupInterval                 :
BackupLastTime                 :
BuildVersion                   : 6001.18000
Caption                        :
DatabaseDirectory              : C:\Windows\system32\wbem\repository
DatabaseMaxSize                :
Description                    :
EnableAnonWin9xConnections     :
EnableEvents                   : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects   :
HighThresholdOnEvents          : 20000000
InstallationDirectory          : C:\Windows\system32\wbem
LastStartupHeapPreallocation   :
LoggingDirectory               : C:\Windows\system32\wbem\Logs\
LoggingLevel                   : 2
LowThresholdOnClientObjects    :
LowThresholdOnEvents           : 10000000
MaxLogFileSize                 : 65536
MaxWaitOnClientObjects         :
MaxWaitOnEvents                : 2000
MofSelfInstallDirectory        :
SettingID                      :
...

このコマンドは、WMI のログ レベルを 2 に設定します。 このコマンドは、設定するプロパティと値を引数パラメーターで値ペアと見なして渡します。 このパラメーターは、構築によって定義されたハッシュ テーブルを @{property = value} 受け取ります。 返されるクラス情報には、新しい値が反映されます。

パラメーター

-Arguments

変更するプロパティの名前と、そのプロパティの新しい値を指定します。 名前と値は、名前と値のペアである必要があります。 名前と値のペアは、コマンド ラインでハッシュ テーブルとして渡されます。 次に例を示します。

@{Setting1=1; Setting2=5; Setting3="test"}

Type:Hashtable
Aliases:Args, Property
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsJob

このコマンドレットがバックグラウンド ジョブとして実行されることを示します。 完了に時間のかかるコマンドを実行するには、このパラメーターを使用します。

AsJob パラメーターを指定すると、コマンドはバックグラウンド ジョブを表すオブジェクトを返し、コマンド プロンプトを表示します。 ジョブが完了しても、引き続きセッションで作業できます。 リモート コンピューターに使用する場合、ジョブはローカル コンピューターに作成され、リモート コンピューターからの結果がローカル コンピューターに自動的に返されます。 ジョブを管理するには、ジョブ名詞 (ジョブ コマンドレット) を含むコマンドレットを使用します。 ジョブの結果を取得するには、コマンドレットを Receive-Job 使用します。

このパラメーターをリモート コンピューターと共に使用するには、リモート処理用にローカル コンピューターとリモート コンピューターを構成する必要があります。 さらに、Windows Vista 以降のバージョンの Windows オペレーティング システムで [管理者として実行] オプションを使用して Windows PowerShell を起動する必要があります。 詳細については、「about_Remote_Requirements」を参照してください

Windows PowerShell バックグラウンド ジョブの詳細については、「about_Jobsとabout_Remote_Jobs」を参照してください

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

-Authentication

WMI 接続で使用する必要がある認証レベルを指定します。 このパラメーターの有効値は、次のとおりです。

  • -1:変更。
  • 0: 既定値。
  • 1:なし。 認証は実行されません。
  • 2:接続。 認証は、クライアントがアプリケーションとの関係を確立した場合にのみ実行されます。
  • 3:呼び出し。 認証は、アプリケーションが要求を受け取ったときに、各呼び出しの開始時にのみ実行されます。
  • 4:パケット。 認証は、クライアントから受信したすべてのデータに対して実行されます。
  • 5: PacketIntegrity。 クライアントとアプリケーションの間で転送されるすべてのデータが認証され、検証されます。
  • 6: PacketPrivacy。 他の認証レベルのプロパティが使用され、すべてのデータが暗号化されます。
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authority

WMI 接続の認証に使用する機関を指定します。 標準の NTLM 認証または Kerberos 認証を指定できます。 NTLM を使用するには、権限設定を ntlmdoメイン:<DoメインName> に設定します。ここで<、DoメインName> は有効な NTLM doメイン 名を識別します。 Kerberos を使用するには、kerberos:<DoメインName>\<ServerName を指定します>。 ローカル コンピューターへの接続時に認証設定を指定することもできます。

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

-Class

WMI クラスの名前を指定します。

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

-ComputerName

このコマンドレットを実行するコンピューターの名前を指定します。 既定値はローカル コンピューターです。

1 台または複数のコンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。 ローカル コンピューターを指定するには、コンピューター名、ドット (.)、または localhost を入力します。

このパラメーターは、Windows PowerShell リモート処理に依存しません。 コンピューターがリモート コマンドを 実行するように構成されていない場合でも、ComputerName パラメーターを使用できます。

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

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

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

-Credential

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

User01 や Doメイン01\User01 などのユーザー名を入力するか、Get-Credential コマンドレットによって生成された PSCredential オブジェクトを入力します。 ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。

このパラメーターは、Windows PowerShell でインストールされているプロバイダーでは、パラメーターを使用してインストールされたプロバイダーではサポートされていません。

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

-EnableAllPrivileges

このコマンドレットは、WMI 呼び出しを行うコマンドの前に、現在のユーザーのすべてのアクセス許可を有効にすることを示します。

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

-Impersonation

使用する偽装レベルを指定します。 このパラメーターの有効値は、次のとおりです。

  • 0: 既定値。 既定の偽装レベルのローカル レジストリを読み取ります。通常は 3: Impersonate に設定されます。
  • 1:匿名。 呼び出し元の資格情報は非表示になります。
  • 2:識別。 オブジェクトによる呼び出し元の資格情報のクエリが許可されます。
  • 3:偽装。 オブジェクトによる呼び出し元の資格情報の使用が許可されます。
  • 4:デリゲート。 オブジェクトが呼び出し元の資格情報の使用を他のオブジェクトに許可できるようにします。
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

入力として使用する ManagementObject オブジェクトを指定します。 このパラメーターを使用すると、Arguments パラメーターを除く他のすべてのパラメーターは無視されます。

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

-Locale

WMI オブジェクトの優先ロケールを指定します。 Locale パラメーターは、MS_<LCID> 形式の配列で優先順序で指定されます。

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

-Namespace

Class パラメーターと共に使用する場合に、参照される WMI クラスが配置される WMI リポジトリ名前空間を指定します。

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

-Path

作成または更新するインスタンスの WMI オブジェクト パスを指定します。

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

-PutType

WMI インスタンスを作成または更新するかどうかを示します。 このパラメーターの有効値は、次のとおりです。

  • UpdateOnly既存の WMI インスタンスを更新します。
  • CreateOnly 新しい WMI インスタンスを作成します。
  • UpdateOrCreateWMI インスタンスが存在する場合は更新するか、インスタンスが存在しない場合は新しいインスタンスを作成します。
Type:PutType
Accepted values:None, UpdateOnly, CreateOnly, UpdateOrCreate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

このコマンドを実行するために確立できる最大コンカレント接続数を指定します。 このパラメーターは、AsJob パラメーターと共に使用されます。 スロットル制限は現在のコマンドのみに適用され、セッションまたはコンピューターには適用されません。

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

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

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

入力

None

このコマンドレットは入力を受け取りません。

出力

None

このコマンドレットは出力を生成しません。

メモ

Windows PowerShell には、次のエイリアスが Set-WmiInstance含まれています。

  • swmi