このエントリーをはてなブックマークに追加


PowerShellでファイルやディレクトリの属性を設定・変更する Set-ItemProperty

コマンドプロンプトのattribと同等とことをPowerShellでは、Set-ItemPropertyコマンドレットを使うことで実現できます。
以下にSet-ItemPropertyを使った使用例を記します。


関連記事

使用したPowerShellバージョンおよびWindows OS

  • PowerShell
    $PSVersionTable
    
    Name                           Value                                                                                                          
    ----                           -----                                                                                                          
    PSVersion                      5.1.17763.592                                                                                                  
    PSEdition                      Desktop                                                                                                        
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                                        
    BuildVersion                   10.0.17763.592                                                                                                 
    CLRVersion                     4.0.30319.42000                                                                                                
    WSManStackVersion              3.0                                                                                                            
    PSRemotingProtocolVersion      2.3                                                                                                            
    SerializationVersion           1.1.0.1                   
  • Windows
    (Get-WmiObject Win32_OperatingSystem).Caption
    Microsoft Windows 10 Home

ファイルとディレクトリを作成して読み取り専用にしてみる

動作確認用にfooといる空ファイルとディレクトリを作成しました。

PS O:\wk> New-Item -ItemType File foo

    ディレクトリ: O:\wk

Mode                LastWriteTime         Length Name                                                                                         
----                -------------         ------ ----                                                                                         
-a----       2019/07/08     21:17              0 foo           
New-Item -ItemType Directory bar

    ディレクトリ: O:\wk

Mode                LastWriteTime         Length Name                                                                                         
----                -------------         ------ ----                                                                                         
d-----       2019/07/08     21:32                bar   

ちなみに attrib コマンドのファイルの出力はAとなっています。

O:\wk>attrib foo
A                    O:\wk\foo

O:\wk>attrib bar
                     O:\wk\bar
					 

Modeをみると、aがあるのでアーカイブ属性がついていますね。

01.png
 

詳細設定ボタンをクリックするとファイルをアーカイブ可能にするにチェックがついています。

02.png
 

Set-ItemPropertyの構文と属性値

Set-ItemPropertyの設定できる属性は下表の通りです。

  • 属性オプション表
    属性オプション意味
    Archiveアーカイブ属性
    Readonly読み取り専用属性
    Hidden隠しファイル属性
    Normal属性を外す
    Systemシステムファイル属性
  • 構文
    Set-ItemProperty -Path ファイル名rディレクトリ -Name Attributes -Value 属性オプション
    属性は複数同時に付与することができます。

実行例

上記で作成したfooファイルおよびbarディレクトリの属性を変更してみます。

  • ReadOnly属性をつける
    Set-ItemProperty -Path .\foo -Name Attributes -Value "ReadOnly"
    Set-ItemProperty -Path .\bar -Name Attributes -Value "ReadOnly"
     
    Get-ChildItem .
    
       ディレクトリ: O:\wk
    
    Mode                LastWriteTime         Length Name                                                                                         
    ----                -------------         ------ ----                                                                                         
    d-r---       2019/07/08     21:32                bar                                                                                          
    --r---       2019/07/08     21:17              0 foo             
     
    rがついていますね。ReadOnlyになりました。
  • 属性を外す
    Set-ItemProperty -Path .\foo -Name Attributes -Value "Normal"
    Set-ItemProperty -Path .\bar -Name Attributes -Value "Normal"
     
    Get-ChildItem .
    
        ディレクトリ: O:\wk
    
    Mode                LastWriteTime         Length Name                                                                                         
    ----                -------------         ------ ----                                                                                         
    d-----       2019/07/08     21:32                bar                                                                                          
    ------       2019/07/08     21:17              0 foo                            
     
    rが外れているのが確認できます。
  • ReadOnly, Hiddenを一緒につける 以下のようにReadOnlyとHiddenを一緒につけることもできます。
    Set-ItemProperty -Path .\foo -Name Attributes -Value "ReadOnly,Hidden"
     
    Get-ChildItem -Force .\foo
    
        ディレクトリ: O:\wk
    
    Mode                LastWriteTime         Length Name                                                                                         
    ----                -------------         ------ ----                                                                                         
    --rh--       2019/07/08     21:17              0 foo           

rhがついていますね。
ちなみにGet-ChildItemで隠しファイルを表示する場合は、上記の通り -Forceを付けます。

  • 属性を外す
    Set-ItemProperty -Path .\foo -Name Attributes -Value "Normal"
     
    Get-ChildItem -Force .\foo
    
        ディレクトリ: O:\wk
    
    Mode                LastWriteTime         Length Name                                                                                         
    ----                -------------         ------ ----                                                                                         
    ------       2019/07/08     21:17              0 foo             
  • 読み取り専用属性の有効・無効は以下のコマンド構文でも可能 読み取り専用の属性をオン・オフしたい場合は以下のように記述することもできます。
    Set-ItemProperty -Path ファイルorディレクトリ -Name IsReadOnly -Value $True
     
    Set-ItemProperty -Path ファイルorディレクトリ -Name IsReadOnly -Value $False
     
    実行例です
    Set-ItemProperty -Path .\foo -Name IsReadOnly $true
    Get-ChildItem .\foo
    
       ディレクトリ: O:\wk
    
    Mode                LastWriteTime         Length Name                                                                                         
    ----                -------------         ------ ----                                                                                         
    --r---       2019/07/08     21:17              0 foo                                                                                          
     
    Set-ItemProperty -Path .\foo -Name IsReadOnly $false
    Get-ChildItem .\foo
    
       ディレクトリ: O:\wk
    
    Mode                LastWriteTime         Length Name                                                                                         
    ----                -------------         ------ ----                                                                                         
    ------       2019/07/08     21:17              0 foo                                                                                          

以上、PowerShellでファイルやディレクトリのファイル属性を付与したり外したりする操作例でした。



添付ファイル: file02.png 515件 [詳細] file01.png 550件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-07-09 (火) 00:20:40