El atributo de tamaño de archivo obtiene acceso denegado en un archivo accesible

0

¡Nos volvemos locos en el siguiente problema de control de acceso! He buscado en Google alto y bajo, y no puedo encontrar nada pertinente. Cualquier ayuda apreciada.

Tengo una netbook de Windows 7 Starter Edition. Tiene dos usuarios, USER1 y USER2. Ambos son no administradores. Ambos tienen una contraseña. Es una caja estándar sin nada inusual.

USER1 crea un archivo, por ejemplo, en su escritorio, y luego le da a USER2 el control total de ese archivo. Por ejemplo:

===================================================
NOTE: REPLACE ALL INSTANCES OF "USER1" AND "USER2"
IN TEST.BAT AND TEST.VBS WITH YOUR OWN ACCOUNT NAMES
====================================================

TEST.BAT

cd C:\Users\%username%\Desktop
echo Hello World > TEST.OUT
icacls.exe TEST.OUT /grant "USER2:(F)"
icacls.exe TEST.OUT
pause
exit

El USUARIO1 luego se desconecta, el USUARIO2 inicia sesión e intenta acceder a ese archivo con el objeto COM SCRIPTING.FILESYSTEMOBJECT:

TEST.VBS

option explicit
const TESTFILE = "C:\Users\USER1\Desktop\TEST.OUT"
dim file
with createobject ("scripting.filesystemobject")
  '//ALL NEXT WORK:
  msgbox .fileexists (TESTFILE),, "EXISTS?"
  set file = .getfile (TESTFILE)
  msgbox file.attributes,, ".ATTRIBUTES"
  msgbox file.path,, ".PATH"
  with .opentextfile (TESTFILE, 1, false)
    msgbox .readall,, "CONTENT!"
  end with
end with

' *** BUT ***  (note: FILE variable is still fine here)

on error resume next

'// FAILS RUNTIME ERROR 5, ACCESS DENIED!
msgbox file.size,, ".SIZE"
msgbox err.number & ": " & err.description,, "SIZE"

'// FAILS RUNTIME ERR 53, NO FILE!
msgbox file.datecreated,, ".DATECREATED"
msgbox err.number & ": " & err.description,, ".DATECREATED"

on error goto 0
wscript.quit

En otras palabras, USER2 puede ver el archivo, leer su contenido y mostrar ciertos atributos, pero no los atributos todos , por ejemplo. TAMAÑO!

USER2 no tiene acceso directo a las carpetas C: \ Users \ USER1 y C: \ Users \ USER1 \ Desktop. Pero está claramente atravesando esas carpetas, para llegar al archivo. Si no atravesaba esas carpetas, no podría leer el contenido del archivo.

Así que mis preguntas son:

(1) ¿Por qué puede USER2 acceder a algunos pero no a todos los atributos del archivo de prueba?

(2) ¿Cómo puede USER2 acceder al atributo .SIZE del archivo de prueba?

También intenté acceder al tamaño del archivo usando WMI CIM_DataFile, pero la consulta relevante simplemente no ve el archivo.

¡Siento que me estoy perdiendo algo obvio!

TIA

    
pregunta A_User 11.07.2018 - 08:04
fuente

0 respuestas

Lea otras preguntas en las etiquetas