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


Set-ItemProperty

Создает или изменяет значение свойства элемента.

Синтаксис

Set-ItemProperty
   [-Path] <string[]>
   [-Name] <string>
   [-Value] <Object>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-ItemProperty
   [-Path] <string[]>
   -InputObject <psobject>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-ItemProperty
   [-Name] <string>
   [-Value] <Object>
   -LiteralPath <string[]>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-ItemProperty
   -LiteralPath <string[]>
   -InputObject <psobject>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-ItemProperty
   [-Path] <string[]>
   [-Name] <string>
   [-Value] <Object>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-Type <RegistryValueKind>]
   [<CommonParameters>]
Set-ItemProperty
   [-Path] <string[]>
   -InputObject <psobject>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-Type <RegistryValueKind>]
   [<CommonParameters>]
Set-ItemProperty
   [-Name] <string>
   [-Value] <Object>
   -LiteralPath <string[]>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-Type <RegistryValueKind>]
   [<CommonParameters>]
Set-ItemProperty
   -LiteralPath <string[]>
   -InputObject <psobject>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-Type <RegistryValueKind>]
   [<CommonParameters>]

Описание

Командлет Set-ItemProperty изменяет значение свойства указанного элемента. Командлет можно использовать для установки или изменения свойств элементов. Например, можно использовать Set-ItemProperty для задания значения свойства IsReadOnly объекта файла $True.

Вы также используете Set-ItemProperty для создания и изменения значений реестра и данных. Например, можно добавить новую запись реестра в ключ и установить или изменить его значение.

Примеры

Пример 1. Установка свойства файла

Эта команда задает значение свойства IsReadOnly для файла "final.doc" значение true. Он использует пути, чтобы указать файл, имя, чтобы указать имя свойства, а параметр value указать новое значение.

Файл представляет собой объект System.IO.FileInfo и IsReadOnly является только одним из его свойств. Чтобы просмотреть все свойства, введите Get-Item C:\GroupFiles\final.doc | Get-Member -MemberType Property.

$true автоматическая переменная представляет значение TRUE. Дополнительные сведения см. в about_Automatic_Variables.

Set-ItemProperty -Path C:\GroupFiles\final.doc -Name IsReadOnly -Value $true

Пример 2. Создание записи и значения реестра

В этом примере показано, как использовать Set-ItemProperty для создания новой записи реестра и назначения значения записи. Он создает запись NoOfEmployees в ключе ContosoCompany в HKLM\Software ключа и задает значение 823.

Так как записи реестра считаются свойствами разделов реестра, которые являются элементами, вы используете Set-ItemProperty для создания записей реестра, а также для установления и изменения их значений.

Set-ItemProperty -Path "HKLM:\Software\ContosoCompany" -Name "NoOfEmployees" -Value 823
Get-ItemProperty -Path "HKLM:\Software\ContosoCompany"

PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\contosocompany
PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName   : contosocompany
PSDrive       : HKLM
PSProvider    : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 823

Set-ItemProperty -Path "HKLM:\Software\ContosoCompany" -Name "NoOfEmployees" -Value 824
Get-ItemProperty -Path "HKLM:\Software\ContosoCompany"

PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\contosocompany
PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName   : contosocompany
PSDrive       : HKLM
PSProvider    : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 824

Первая команда создает запись реестра. Он использует path, чтобы указать путь диска HKLM: и ключа Software\MyCompany. Команда использует имени, чтобы указать имя записи и значение, чтобы указать значение.

Вторая команда использует командлет Get-ItemProperty для просмотра новой записи реестра. Если вы используете командлеты Get-Item или Get-ChildItem, записи не отображаются, так как они являются свойствами ключа, а не элементами или дочерними элементами.

Третья команда изменяет значение записи NoOfEmployees на 824.

Можно также использовать командлет New-ItemProperty для создания записи реестра и его значения, а затем использовать Set-ItemProperty для изменения значения.

Дополнительные сведения о диске HKLM: введите Get-Help Get-PSDrive. Дополнительные сведения об использовании PowerShell для управления реестром введите Get-Help Registry.

Пример 3. Изменение элемента с помощью конвейера

В примере используется Get-ChildItem для получения файла weekly.txt. Объект файла передан в Set-ItemProperty. Команда Set-ItemProperty использует параметры имени и значение для указания свойства и его нового значения.

Get-ChildItem weekly.txt | Set-ItemProperty -Name IsReadOnly -Value $True

Параметры

-Confirm

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

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

-Credential

Заметка

Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворить другого пользователя или повысить свои учетные данные при выполнении этого командлета, используйте Invoke-Command.

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

-Exclude

Указывает как строковый массив, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешены подстановочные знаки. Параметр Исключить действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*, где подстановочный знак указывает содержимое каталога C:\Windows.

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

-Filter

Указывает фильтр для квалификации параметра Path. Поставщик файловой системы является единственным установленным поставщиком PowerShell, поддерживающим использование фильтров. Синтаксис для языка фильтрации файловой системы можно найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты После их получения.

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

-Force

Заставляет командлет задать свойство для элементов, к которым не удается получить доступ пользователю. Реализация зависит от поставщика. Дополнительные сведения см. в разделе about_Providers.

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

-Include

Указывает, как строковый массив, элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например "*.txt". Разрешены подстановочные знаки. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*, где подстановочный знак указывает содержимое каталога C:\Windows.

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

-InputObject

Указывает объект, имеющий свойства, которые изменяются этим командлетом. Введите переменную, содержащую объект или команду, которая получает объект.

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

-LiteralPath

Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так же, как оно введите. Символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.

Дополнительные сведения см. в about_Quoting_Rules.

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

-Name

Указывает имя свойства.

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

-PassThru

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

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

-Path

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

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

-Type

Это динамический параметр, доступный поставщиком реестра. Поставщик реестра и этот параметр доступен только в Windows.

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

  • String: указывает строку, завершаемую значением NULL. Используется для значений REG_SZ.
  • ExpandString. Указывает строку, завершающую значение NULL, которая содержит необъяснимые ссылки на переменные среды, развернутые при извлечении значения. Используется для значений REG_EXPAND_SZ.
  • Binary: указывает двоичные данные в любой форме. Используется для значений REG_BINARY.
  • DWord: указывает 32-разрядное двоичное число. Используется для REG_DWORD значений.
  • MultiString: указывает массив строк, завершаемых значением NULL, прерванным двумя символами NULL. Используется для REG_MULTI_SZ значений.
  • Qword: указывает 64-разрядное двоичное число. Используется для значений REG_QWORD.
  • Unknown. Указывает неподдерживаемый тип данных реестра, например значения REG_RESOURCE_LIST.
Тип:RegistryValueKind
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-UseTransaction

Включает команду в активную транзакцию. Этот параметр действителен только в том случае, если выполняется транзакция. Дополнительные сведения см. в about_Transactions.

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

-Value

Указывает значение свойства.

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

-WhatIf

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

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

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

PSObject

Объекты можно передать в этот командлет.

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

None

По умолчанию этот командлет не возвращает выходные данные.

PSCustomObject

При использовании параметра PassThru этот командлет возвращает объект PSCustomObject, представляющий измененный элемент и его новое значение свойства.

Примечания

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

  • sp

Set-ItemProperty предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе, введите Get-PSProvider. Дополнительные сведения см. в разделе about_Providers.