Cuando un proceso se ejecuta con un nivel de integridad bajo, no puede escribir en% temp%, así que necesito encontrar el camino para el% \ bajo el directorio% temp (Sin codificar la palabra "baja")Cómo obtener la ubicación de% temp% Low cuando se ejecuta como un proceso de baja intergrity
Respuesta
Según MSDN
"procesos de baja integridad pueden escribir y crear subcarpetas bajo PERFIL% USUARIO% \ AppData \ LocalLow"
No creo que haya ninguna forma de evitar la codificación dura de las dos últimas carpetas.
Según MSDN
Cuando está en modo protegido, las extensiones pueden escribir archivos en una carpeta debajo de la carpeta PerfilUsuario del usuario , típicamente % USERPROFILE% \ AppData \ LocalLow. Use la función SHGetKnownFolderPath con el indicador FOLDERID_LocalAppDataLow en obtenga el nombre de la carpeta expandida.
SHGetKnownFolderPath(FOLDERID_LocalAppDataLow, 0,
NULL, szPath, ARRAYSIZE(szPath));
El "Finding Low Integrity Write Locations" section de la "comprensión y el trabajo en el modo protegido de Internet Explorer" artículo incluye el siguiente dato:
Nota modo protegido modifica las variables de entorno de IE. Como resultado, la función GetTempPath() devuelve% Temp% \ Low cuando se llama mientras el modo protegido está activo.
Creo que esto es solo un IE ... – Anders
Si solo está buscando un directorio temporal para escribir, puede recorrer los directorios dentro del directorio %temp%
e intentar escribir en cada uno.
Si el UAC está desactivado, .
debería ser el primero. De lo contrario, .\Low
debe ser el único.
Es interesante, tal vez el sistema operativo se ocupa de darle la ruta Temp \ Low en la variable% temp% environemnt, por lo que GetTempPath() devuelve la ruta correcta? No lo probé. Sin embargo, esto * no * se correlaciona directamente con UAC. UAC evita que siempre se ejecute con un token de alta integridad. Pero incluso cuando el UAC está desactivado, los procesos pueden crearse con baja integridad. – Danra
- 1. ¿Cuáles son las mejores prácticas cuando se ejecuta un proceso como un servicio de Windows?
- 2. Ubicación de Hudson Free Temp Space
- 3. Falta la DLL cuando se ejecuta como secuencia de comandos
- 4. Directorio de inicio del archivo de proceso por lotes de Windows cuando se ejecuta como administrador
- 5. ¿dónde va la salida cuando se ejecuta como proceso en segundo plano?
- 6. Inno Setup: ¿Cómo obtener el directorio de usuario actual cuando se ejecuta el instalador como administrador?
- 7. ¿Ejecuta un proceso desde la memoria dentro de otro proceso?
- 8. Create PK para #temp table failed cuando el script se ejecuta en paralelo
- 9. Bluetooth Low Energy - la actualización de un valor característico repetidamente
- 10. Cómo capturar el PID de un proceso cuando lo ejecuta desde la línea de comando?
- 11. AVCam memory low warning
- 12. ¿Cómo controlar qué núcleo se ejecuta un proceso?
- 13. ¿Qué sucede cuando un proceso se bifurca?
- 14. SharePoint guión falla cuando se ejecuta como un comando posterior a la implementación de Visual Studio
- 15. Se carga mscorlib.dll/mscoree.dll cuando se ejecuta la aplicación .NET
- 16. ¿Cómo inicio un proceso con baja prioridad? C#
- 17. UnicodeEncodeError solamente cuando se ejecuta como una tarea programada
- 18. Cuando `PostAuthenticateRequest` se ejecuta?
- 19. ¿La fuente de C# se ejecuta como un script?
- 20. Obtener $ USER dentro de la secuencia de comandos de shell cuando se ejecuta con sudo?
- 21. Cuando se invoca su BroadcastReceiver a través de una intención, ¿en qué proceso se ejecuta?
- 22. ¿Cómo se ejecuta un comando como administrador desde la línea de comandos de Windows?
- 23. Cómo crear un minivolcado de un proceso .NET cuando se produce una excepción de primera oportunidad
- 24. Cómo obtener los nombres de los campos cuando se ejecuta la consulta SQL simple en django
- 25. ¿Hay alguna manera de acceder a los dispositivos Bluetooth Low Low Energy en iOS?
- 26. Obtención de URL de la respuesta HTTP cuando no se envía un encabezado de ubicación
- 27. ¿Cómo se ignoran los directorios cuando se ejecuta Django collectstatic?
- 28. ¿Cómo usar correctamente un script de enlazador simple? Ejecutable se SIGKILL cuando se ejecuta
- 29. ¿Cómo obtener la ubicación (src) de un archivo javascript?
- 30. ¿La pila de python crece con un proceso iterativo que se ejecuta mediante un procedimiento recursivo?
Eso obtiene la aplicación de datos local, pero no la temperatura baja ... –
Si bien esta no es una respuesta directa a su pregunta, parece ser la única carpeta segura que puede obtener sin codificar la ruta. Yo usaría eso y crearía la carpeta temporal allí. (Por supuesto, esto le otorga más responsabilidad para administrar la eliminación final de los archivos). – Danra