• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 707
  • Last Modified:

Read only script powershell

Hi I am looking for a script to mark all ISO files under a directory and subdirectorys as read only. If anyone can help would be much appreciated. thanks in advance
0
Dead_Eyes
Asked:
Dead_Eyes
1 Solution
 
Dale HarrisProfessional Services EngineerCommented:
The easiest way I found is to copy the ACLs from a file that has the same permissions set.  Example:

$ACL = get-acl "c:\examplefile.txt"

Now that it's stored, let's get all the ISO files in a given directory and recursively search

Set-Location "C:\Scripts"
$Files = get-childitem -recurse -filter "*.iso" | %{set-acl $ACL}

I haven't tested this, but this is what it's going to end up looking similar to.  Good luck!  And if you haven't read up on the articles here on EE, I recommend them :)
http://www.experts-exchange.com/Programming/Languages/Scripting/Powershell/A_4327-PowerShell-Where-do-I-start.html

-DH
0
 
Dale HarrisProfessional Services EngineerCommented:
Oh I guess I made a slight error.  After testing, it doesn't like setting the ACL, so let's try this:

$ACL = get-acl "c:\examplefile.txt"
Set-Location "C:\Scripts"
$files = get-childitem -recurse -filter "*.iso"
foreach ($file in $files){
Set-ACL $file $ACL
}

Try that out and see if it doesn't do the job for you.

DH
0
 
Dead_EyesAuthor Commented:
Is the read only attribute part of the acl? (trying it now)
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
Dead_EyesAuthor Commented:
Gave the script a try and it seems to fail on every fail with the same error

See below:

At C:\test2.ps1:5 char:8
+ Set-ACL <<<<  $file $ACL
    + CategoryInfo          : ObjectNotFound: (X:\Software_Arc...x64_Pro_OEM.iso:String)  
   [Set-Acl], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetAclCommand
0
 
QlemoC++ DeveloperCommented:
No, R/O is a file attribute, not a part of ACLs. We can handle it as a property of the file:
   set-itemProperty c:\temp\File.txt -name IsReadOnly -value $false
or
   (get-itemProperty c:\temp\File.txt).IsReadOnly = $false
0
 
Dead_EyesAuthor Commented:
your definatly on the right track but having alot of trouble trying to translate it into a script
0
 
Dale HarrisProfessional Services EngineerCommented:
Oh good call Qlemo, wasn't thinking about that.  Here would be the script change:

Set-Location "C:\Scripts"
get-childitem -recurse -filter "*.iso" | %{$_.isreadonly = $True}

-DH
0
 
BelushiLomaxCommented:
Use icacls with the built in switches. Should do what you need. Included in 08 and 7.
0
 
Dead_EyesAuthor Commented:
Thanks that worked great#
0

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now