Quando un processo è in esecuzione a livello di integrità basso, non è possibile scrivere su% temp% quindi ho bisogno di un modo per trovare il percorso il% temp% \ basso directory (Senza hardcoding la parola "Low")Come ottenere l'ubicazione di% temp% Low quando si esegue come processo intergrity basso
risposta
Secondo MSDN
"processi a bassa integrità possono scrivere e creare sottocartelle PROFILO% USER% \ AppData \ LocalLow"
Non penso che ci sia un modo per evitare di codificare le ultime due cartelle.
Secondo MSDN
In modalità protetta, le estensioni possono scrivere i file in una cartella sotto la cartella UserProfile dell'utente , tipicamente % userprofile% \ AppData \ LocalLow. Utilizzare la funzione SHGetKnownFolderPath con il flag FOLDERID_LocalAppDataLow su ottenere il nome della cartella espansa.
SHGetKnownFolderPath(FOLDERID_LocalAppDataLow, 0,
NULL, szPath, ARRAYSIZE(szPath));
La "Finding Low Integrity Write Locations" section dell ' "Intesa e lavorare in modalità protetta di Internet Explorer" articolo include i seguenti bocconcino:
Nota modalità protetta modifica le variabili di ambiente di IE. Di conseguenza, la funzione GetTempPath() restituisce% Temp% \ Low quando viene chiamato mentre la modalità protetta è attiva.
Credo che questa sia solo una cosa di IE ... – Anders
Se si sta cercando una directory temporanea in cui scrivere, è possibile scorrere le directory all'interno della directory %temp%
e provare a scrivere su ciascuna.
Se UAC è disabilitato, .
dovrebbe essere il primo. In caso contrario, .\Low
dovrebbe essere l'unico.
È interessante, forse il sistema operativo si prende cura di darti il percorso Temp \ Low nella variabile% temp% environmnt, quindi GetTempPath() restituisce il percorso corretto? Non l'ho provato Tuttavia, questo * non * è correlato direttamente al controllo dell'account utente. Il controllo dell'account utente impedisce di eseguire sempre con un token ad alta integrità. Tuttavia, anche quando UAC è disattivato, è possibile creare processi con bassa integrità. – Danra
Che ottiene l'app locale ma non la temperatura bassa ... –
Mentre questa non è una risposta diretta alla tua domanda, sembra essere l'unica cartella sicura che puoi ottenere senza il percorso hardcoding. Lo userei e crearei la cartella temporanea lì. (Naturalmente questo ti mette più responsabilità nel gestire l'eventuale cancellazione dei file). – Danra