How do I change a file's attribute using Powershell?
You can use the good old dos attrib command like this:
attrib -a *.*
Or to do it using Powershell you can do something like this:
$a = get-item myfile.txt
$a.attributes = 'Normal'
As the Attributes is basically a bitmask field, you need to be sure clear the archive field while leaving the rest alone:
PS C:\> $f = get-item C:\Archives.pst PS C:\> $f.Attributes Archive, NotContentIndexed PS C:\> $f.Attributes = $f.Attributes -band (-bnot [System.IO.FileAttributes]::Archive) PS C:\> $f.Attributes NotContentIndexed PS H:\>
From here:
function Get-FileAttribute{
param($file,$attribute)
$val = [System.IO.FileAttributes]$attribute;
if((gci $file -force).Attributes -band $val -eq $val){$true;} else { $false; }
}
function Set-FileAttribute{
param($file,$attribute)
$file =(gci $file -force);
$file.Attributes = $file.Attributes -bor ([System.IO.FileAttributes]$attribute).value__;
if($?){$true;} else {$false;}
}