resulta que éstas carpetas son idénticas en comportamiento a las de 'system information'
La única manera de acceder a éstas carpetas es desde fuera del sistema. Ni en modo seguro se puede. O bien desde Linux, un disco de arranque o algo así.
Para poder acceder al directorio "
C:\System Volume Information" y/o cualquier directorio cuyo propietario sea "
SYSTEM" y donde el usuario no tenga permisos, simplemente debes tomar posesión y conceder los permisos necesarios al usuario actual. No es necesario "salirse del sistema operativo" y usar una distro de Linux, lo único que hace falta es ser un usuario con permisos de
Administrador:
Para que veas lo sencillo que resulta acceder, con las herramientas command-line de Windows se haría de la siguiente manera:
Set "dirpath=C:\System Volume Information"
"Takeown.exe" /F "%dirpath%" /R /D S
"Icacls.exe" "%dirpath%" /Grant "%USERNAME%":"F" /T
Y en VB.NET para concederle permisos de control total al usuario actual (suponiendo que este sea Administrador) lo harías de la siguiente manera:
Dim user As IdentityReference = WindowsIdentity.GetCurrent(TokenAccessLevels.AllAccess).User
Dim acl As New FileSystemAccessRule(user, FileSystemRights.FullControl, AccessControlType.Allow)
Dim dirpath As String = "C:\System Volume Information"
Dim ds As DirectorySecurity = Directory.GetAccessControl(dirpath)
ds.ResetAccessRule(acl)
' Si deseas modificar el propietario...
' ds.SetOwner(user)
'
' Si deseas modificar el grupo...
' Dim group As New SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, Nothing)
' ds.SetGroup(group)
Directory.SetAccessControl(dirpath, ds)
Nota: es probable que para modificar el propietario por motivos de seguridad primero debas habilitar el privilegio de proceso
SE_TAKE_OWNERSHIP_NAME:
( en realidad se requiere mucho más p/invoking, como implementar la estructura
LUID_AND_ATTRIBUTES, llamar a la la función
OpenProcessToken,
LookupPrivilegeValue, etc, pero no quiero colapsarte con más enlaces a la API de Windows. )
He conseguido crear carpetas que deniegan el acceso con net y consola pero son fáciles de volver a hacerlas accesibles con simples comandos de consola.
Bueno, arriba ya te he demostrado que siendo usuario
Administrador es posible tener acceso a cualquier archivo y directorio del sistema de archivos, por lo tanto creo que lo que intentas hacer no tiene mucho sentido en realidad. No puedes pretender crear un directorio que realmente sea inaccesible para un usuario
Administrador (siempre que éste tengo un mínimo de conocimiento para saber como acceder).
saludos