Set-ItemProperty
項目のプロパティの値を作成または変更します。
構文
Set-ItemProperty [-LiteralPath] <string[]> -InputObject <psobject> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Set-ItemProperty [-Path] <string[]> -InputObject <psobject> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Set-ItemProperty [-LiteralPath] <string[]> [-Name] <string> [-Value] <Object> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Set-ItemProperty [-Path] <string[]> [-Name] <string> [-Value] <Object> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
説明
Set-ItemProperty コマンドレットは、指定した項目のプロパティの値を変更します。コマンドレットを使用して、項目のプロパティを設定または変更できます。たとえば、Set-ItemProperty を使用すると、ファイル オブジェクトの IsReadOnly プロパティの値を true に設定できます。
レジストリの値とデータの作成と変更を行う場合にも、Set-ItemProperty を使用します。たとえば、新しいレジストリ エントリをキーに追加し、その値を設定または変更できます。
パラメーター
-Credential <PSCredential>
この処理を実行するアクセス許可を持つユーザー アカウントを指定します。既定値は現在のユーザーです。
"User01" や "Domain01\User01" のようなユーザー名を入力するか、Get-Credential コマンドレットで生成されるような PSCredential オブジェクトを入力します。ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されます。
このパラメーターは、Windows PowerShell でインストールされるプロバイダーではサポートされていません。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Exclude <string[]>
コマンドレットの対象から除外する項目を指定します。それ以外の項目は対象となります。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Filter <string>
プロバイダーの形式や言語でフィルターを指定します。このパラメーターの値は、Path パラメーターを修飾します。ワイルドカードを使用できるかどうかなど、フィルターの構文はプロバイダーによって異なります。フィルターは他のパラメーターよりも効率が良い方法です。これは、オブジェクトを取得した後に Windows PowerShell がオブジェクトをフィルターするのではなく、オブジェクトを取得する際にプロバイダーがフィルターを適用するためです。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Force
設定しないとユーザーがアクセスできない項目のプロパティをコマンドレットで設定できるようにします。実装はプロバイダーごとに異なります。詳細については、「about_Providers」を参照してください。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Include <string[]>
コマンドレットの処理対象とする項目を指定し、それ以外の項目は除外します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-InputObject <psobject>
変更するプロパティがあるオブジェクトの名前を指定します。オブジェクトが格納されている変数、またはオブジェクトを取得するコマンドを入力します。
必須 |
true |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByValue, ByPropertyName) |
ワイルドカード文字を許可する |
false |
-LiteralPath <string[]>
項目プロパティへのパスを指定します。LiteralPath の値は、入力した内容のまま使用されます。ワイルドカードとして解釈される文字はありません。パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。単一引用符で囲んだ文字はエスケープ シーケンスとして解釈されません。
必須 |
true |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Name <string>
プロパティの名前を指定します。
必須 |
true |
位置 |
2 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-PassThru
項目プロパティを表すオブジェクトを返します。既定では、このコマンドレットによる出力はありません。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Path <string[]>
設定するプロパティを持つ項目のパスを指定します。
必須 |
true |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Value <Object>
プロパティの値を指定します。
必須 |
true |
位置 |
3 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Confirm
コマンドを実行する前に確認メッセージを表示します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-WhatIf
実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-UseTransaction
コマンドを有効なトランザクションに含めます。このパラメーターは、トランザクションの進行中のみ有効です。詳細については、「about_Transactions」を参照してください。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
System.Management.Automation.PSObject パイプを使用してオブジェクトを Set-ItemProperty に渡すことができます。 |
出力 |
なし、または System.Management.Automation.PSCustomObject PassThru パラメーターを使用する場合は、Set-ItemProperty によって、変更された項目を表す PSCustomObject オブジェクトとその新しいプロパティ値が生成されます。それ以外の場合、このコマンドレットによる出力はありません。 |
注
Set-ItemProperty コマンドレットは、プロバイダーによって公開されているデータを使用するように設計されています。セッションで使用可能なプロバイダーの一覧を表示するには、「Get-PSProvider」と入力します。詳細については、「about_Providers」を参照してください。
例 1
C:\PS>set-itemproperty -path c:\GroupFiles\final.doc -name IsReadOnly -value $true
説明
-----------
このコマンドは、final.doc ファイルの IsReadOnly プロパティの値を true に設定します。
このコマンドは、Set-ItemProperty コマンドレットを使用して final.doc ファイルのプロパティの値を変更します。ファイルは Path パラメーターを使用して指定しています。また、プロパティの名前は Name パラメーターを使用し、新しい値は Value パラメーターを使用して指定します。
$true 自動変数は TRUE の値を表します。詳細については、「about_Automatic_Variables」を参照してください。
ファイルは System.IO.FileInfo オブジェクトで、IsReadOnly はそのプロパティの 1 つにすぎません。FileInfo オブジェクトのプロパティとメソッドをすべて表示するには、Get-Member コマンドレットに対してファイルをパイプ処理します。たとえば、"final.doc | get-member" などです。
例 2
C:\PS>set-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees -value 823
C:\PS>get-itemproperty -path HKLM:\Software\MyCompany
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycompany
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName : mycompany
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 823
C:\PS>set-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees -value 824
C:\PS>get-itemproperty -path HKLM:\Software\MyCompany
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycompany
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName : mycompany
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 824
説明
-----------
この例は、Set-ItemProperty を使用して新しいレジストリ エントリを作成し、値をエントリに割り当てる方法を示します。このコマンドを実行すると、HKLM\Software キー内の MyCompany キーに NoOfEmployees エントリが作成され、その値が 823 に設定されます。
レジストリ エントリはレジストリ キー (項目) のプロパティと見なされるため、Set-ItemProperty を使用してレジストリ エントリを作成し、値の設定と変更を行います。
最初のコマンドは、Set-ItemProperty コマンドレットを使用してレジストリ エントリを作成します。このコマンドは、Path パラメーターを使用して、HKLM: ドライブと Software\MyCompany キーへのパスを指定します。また、エントリの名前は Name パラメーターを使用し、値は Value パラメーターを使用して指定します。
2 番目のコマンドは、Get-ItemProperty コマンドレットを使用して、新しいレジストリ エントリを表示します。エントリは項目や子項目でなくキーのプロパティであるため、Get-Item または Get-ChildItem コマンドレットを使用する場合、エントリは表示されません。
3 番目のコマンドは、NoOfEmployees エントリの値を 824 に変更します。
New-ItemProperty コマンドレットを使用して、レジストリ エントリとその値を作成してから、Set-ItemProperty を使用して値を変更することもできます。
HKLM: ドライブの詳細については、「get-help get-psdrive」と入力してください。Windows PowerShell を使用してレジストリを管理する方法の詳細については、「get-help registry」と入力してください。
例 3
C:\PS>get-childitem weekly.txt | set-itemproperty -name IsReadOnly -value $true
説明
-----------
これらのコマンドは、パイプライン演算子 (|) を使用して項目を Set-ItemProperty に渡す方法を示しています。
コマンドの最初の部分は Get-ChildItem コマンドレットを使用して、Weekly.txt ファイルを表すオブジェクトを取得します。このコマンドは、パイプライン演算子を使用してファイル オブジェクトを Set-ItemProperty に渡します。Set-ItemProperty コマンドは Name パラメーターおよび Value パラメーターを使用して、プロパティとその新しい値を指定します。
このコマンドを実行すると、InputObject パラメーターを使用して Get-ChildItem が取得するオブジェクトを指定した場合と同じ結果が返されます。
関連項目
概念
about_Providers
Get-ItemProperty
New-ItemProperty
Clear-ItemProperty
Remove-ItemProperty
Rename-ItemProperty
Move-ItemProperty
Copy-ItemProperty