Поделиться через


Set-WmiInstance

Создает или обновляет экземпляр существующего класса инструментария управления Windows (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 (WMI). Созданный или обновленный экземпляр записывается в репозиторий WMI.

Новые командлеты CIM, представленные в Windows PowerShell 3.0, выполняют те же задачи, что и командлеты WMI. Командлеты CIM соответствуют стандартам WS-Management (WSMan) и стандарту Common Information Model (CIM). Это позволяет командлетам использовать те же методы для управления компьютерами под управлением Windows и других операционных систем. Вместо использования Set-WmiInstanceрекомендуется использовать командлеты Set-CimInstance или New-CimInstance.

Примеры

Пример 1. Настройка уровня ведения журнала WMI

Set-WmiInstance -Class Win32_WMISetting -Arguments @{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\n...}
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. Создание переменной среды и ее значения

$setWmiInstanceSplat = @{
    Class = 'Win32_Environment'
    Arguments = @{
        Name="testvar"
        VariableValue="testvalue"
        UserName="<SYSTEM>"
    }
}
Set-WmiInstance @setWmiInstanceSplat

__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

Эта команда создает переменную среды testvar со значением testvalue. Это делается путем создания нового экземпляра класса WMI Win32_Environment. Для этой операции требуются соответствующие учетные данные, и может потребоваться перезапустить Windows PowerShell, чтобы увидеть новую переменную среды.

Пример 3. Настройка уровня ведения журнала WMI для нескольких удаленных компьютеров

$setWmiInstanceSplat = @{
    Class = 'Win32_WMISetting'
    Arguments = @{LoggingLevel = 2}
    ComputerName = 'system01', 'system02', 'system03'
}
Set-WmiInstance @setWmiInstanceSplat

__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\n...}
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"}

Тип:Hashtable
Aliases:Args, Property
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AsJob

Указывает, что этот командлет выполняется в качестве фонового задания. Используйте этот параметр для выполнения команд, которые занимают много времени.

При указании параметра AsJob команда возвращает объект, представляющий фоновое задание, а затем отображает командную строку. Вы можете продолжать работать в сеансе, пока задание завершится. Если используется для удаленного компьютера, задание создается на локальном компьютере, а результаты с удаленных компьютеров автоматически возвращаются на локальный компьютер. Чтобы управлять заданием, используйте командлеты, содержащие существительное задания (командлеты заданий). Чтобы получить результаты задания, используйте командлет Receive-Job.

Чтобы использовать этот параметр вместе с удаленными компьютерами, локальные и удаленные компьютеры должны быть настроены для удаленного взаимодействия. Кроме того, необходимо запустить Windows PowerShell с помощью параметра запуска от имени администратора. Дополнительные сведения см. в about_Remote_Requirements.

Дополнительные сведения о фоновых заданиях Windows PowerShell см. в about_Jobs и about_Remote_Jobs.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Authentication

Указывает уровень проверки подлинности, который должен использоваться с подключением WMI. Допустимые значения для этого параметра:

  • -1: без изменений.
  • 0: по умолчанию.
  • 1: Нет. Проверка подлинности не выполнена.
  • 2: Подключение. Проверка подлинности выполняется только в том случае, если клиент устанавливает связь с приложением.
  • 3: вызов. Проверка подлинности выполняется только в начале каждого вызова, когда приложение получает запрос.
  • 4: пакет. Проверка подлинности выполняется для всех данных, полученных от клиента.
  • 5: PacketIntegrity. Все данные, передаваемые между клиентом и приложением, проходят проверку подлинности и проверяются.
  • 6: PacketPrivacy. Используются свойства других уровней проверки подлинности, а все данные шифруются.
Тип:AuthenticationLevel
Допустимые значения:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Authority

Указывает центр, используемый для проверки подлинности подключения WMI. Можно указать стандартную проверку подлинности NTLM или Kerberos. Чтобы использовать NTLM, задайте для параметра центра значение ntlmdomain:<DomainName>, где <DomainName> определяет допустимое доменное имя NTLM. Чтобы использовать Kerberos, укажите kerberos:<DomainName>\<ServerName>. Параметр центра нельзя включить при подключении к локальному компьютеру.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Class

Задает имя класса WMI.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ComputerName

Указывает имя компьютера, на котором выполняется этот командлет. По умолчанию используется локальный компьютер.

Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескольких компьютеров. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или localhost.

Этот параметр не зависит от удаленного взаимодействия Windows PowerShell. Вы можете использовать параметр ComputerName, даже если компьютер не настроен для выполнения удаленных команд.

Тип:String[]
Aliases:Cn
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Confirm

Запрашивает подтверждение перед запуском командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Credential

Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, например один, созданный командлетом Get-Credential. При вводе имени пользователя этот командлет запрашивает пароль.

Этот параметр не поддерживается поставщиками, установленными с параметром, не поддерживается поставщиками, установленными в Windows PowerShell.

Тип:PSCredential
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-EnableAllPrivileges

Указывает, что этот командлет включает все разрешения текущего пользователя перед командой, которая выполняет вызов WMI.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Impersonation

Указывает используемый уровень олицетворения. Допустимые значения для этого параметра:

  • 0: по умолчанию. Считывает локальный реестр для уровня олицетворения по умолчанию, который обычно имеет значение 3: олицетворение.
  • 1: анонимный. Скрывает учетные данные вызывающего объекта.
  • 2: определение. Позволяет объектам запрашивать учетные данные вызывающего объекта.
  • 3: олицетворения. Позволяет объектам использовать учетные данные вызывающего объекта.
  • 4: Делегат. Позволяет объектам разрешать другим объектам использовать учетные данные вызывающего объекта.
Тип:ImpersonationLevel
Допустимые значения:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

Указывает объект ManagementObject, используемый в качестве входных данных. При использовании этого параметра все остальные параметры, кроме параметра Arguments, игнорируются.

Тип:ManagementObject
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Locale

Задает предпочтительный языковой стандарт для объектов WMI. Параметр языкового стандарта указан в массиве в формате MS_<LCID> в предпочтительном порядке.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Namespace

Указывает пространство имен репозитория WMI, в котором расположен класс WMI, на который ссылается класс WMI, когда он используется с параметром класса.

Тип:String
Aliases:NS
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Path

Указывает путь объекта WMI экземпляра, который требуется создать или обновить.

Тип:String
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-PutType

Указывает, следует ли создавать или обновлять экземпляр WMI. Допустимые значения для этого параметра:

  • UpdateOnly обновляет существующий экземпляр WMI.
  • CreateOnly Создает новый экземпляр WMI.
  • UpdateOrCreate обновляет экземпляр WMI, если он существует или создает новый экземпляр, если экземпляр не существует.
Тип:PutType
Допустимые значения:None, UpdateOnly, CreateOnly, UpdateOrCreate
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ThrottleLimit

Указывает максимальное количество одновременных подключений, которые можно установить для выполнения этой команды. Этот параметр используется вместе с параметром AsJob. Ограничение регулирования применяется только к текущей команде, а не к сеансу или к компьютеру.

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет, если командлет выполняется. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

None

Этот командлет не принимает входные данные.

Выходные данные

None

Этот командлет не создает выходные данные.

Примечания

Windows PowerShell включает следующие псевдонимы для Set-WmiInstance:

  • swmi