以下の手順で Temporary 属性を外します。"-band" は論理積です。
PS C:\> $file = Get-Item "問題のファイル"
PS C:\> $file.Attributes
Archive, Temporary
PS C:\> $file.Attributes = $file.Attributes -band 0xfeff
PS C:\> $file.Attributes
Archive
ちなみにシステムファイルや隠しファイルの場合は、-Force を付加します。Get-ChildItem に -Force を付加すると "dir /a" の効果に相当します。
PS C:\> $file = Get-Item "C:\pagefile.sys" -Force
PS C:\> $file.Attributes
Hidden, System, Archive
PS C:\> Get-ChildItem -Force
ついでに属性値の対応は下表の通りです。
READONLY
|
0x1
|
HIDDEN
|
0x2
|
SYSTEM
|
0x4
|
DIRECTORY
|
0x10
|
ARCHIVE
|
0x20
|
DEVICE
|
0x40
|
NORMAL
|
0x80
|
TEMPORARY
|
0x100
|
SPARSE_FILE
|
0x200
|
REPARSE_POINT
|
0x400
|
COMPRESSED
|
0x800
|
OFFLINE
|
0x1000
|
NOT_CONTENT_INDEXED
|
0x2000
|
ENCRYPTED
|
0x4000
|
D:\Data 配下のファイル/フォルダが対象です。
PS C:\> Get-ChildItem D:\Data -Recurse | ForEach-Object -Process {if (($_.attributes -band 0x100) -eq 0x100) {$_.attributes = ($_.attributes -band 0xFEFF)}}