Community Extensions PowerShell comes with Set-Writable (with the alias swr) and Set-ReadOnly (aliased to sro). I use them as often. Removing execution rights requires a change in ACLs, but using Get-Acl / Set-Acl is painful. I would use icacls.exe.
, - , readonly true/false :
Set-ItemProperty foo.txt IsReadOnly $true