Monthly archives: September 2006
Looking for a way to restrict access to removable drives in your domain on your workstations? It's easier than you might think! There is a registry setting you can set that will turn all removable drives into read-only devices. This includes USB thumb drives, hard drives, and even CD/DVD writers. Of course editing the registry is a pain in the butt if you have a domain with dozens or hundreds of workstations, so I created this Administrative Template for use in Group Policy to configure this setting for you.
Unfortunately, Microsoft did not store these settings in the "true policy" locations of the registry, so in the GPEDIT.MSC you need to click on Administrative Templates, then select View -> Filtering... Uncheck "Only show policy settings that can be fully managed." This will allow you to see the "preferences." (Policy settings that are not fully managed are called Preferences.) You can google for more information on the differences between policies and preferences.
Microsoft's explanation of Administrative Templates...
Link to the Remove Storage Device administrative template...
One thing I love about the new VB.NET in Visual Studio 2005 is the “My” namespace, which offers tons of useful code for common tasks in a single easy to find namespace. As good as the My.Computer.FileSystem namespace is, however, it is lacking a way to easily change attributes on files.
I needed to recursively remove all Read-Only and Hidden attributes in a folder hierarchy in order to copy over (write over) those files using the My.Computer.FileSystem.CopyDirectory method. This method will throw an exception if a file is marked as Read-Only. So, I wrote the following code segment to remove the Read-Only and Hidden attributes for me. Of course this can be easily modified to set other attributes too.
Public Sub RemoveReadOnlyAttributes(ByVal folder As String)
' Remove attribute on individual files
For Each filename As String In My.Computer.FileSystem.GetFiles(folder)
' Recursively call this routine on all subfolders
For Each foldername As String In My.Computer.FileSystem.GetDirectories(folder)