Domanda

Vorrei che il mio programma di lanciare un errore durante il tentativo di creare file in luoghi protetti, come la radice della C: \ unità (ad esempio: FILE* FileHandle = fopen("\\file.txt", a)). Invece il file viene creato nella Virtual Store sotto% appdata%.

Come faccio a disattivare che Virtual Store?

Grazie

EDIT: Giusto per essere chiari, non sto chiedendo come aggirare la sicurezza e creare il mio file in un luogo protetto. Voglio che la creazione del file di fallire in modo che posso dire l'utente che era un idiota.

È stato utile?

Soluzione

Si aggiunge un manifesto dell'applicazione. Scegli asInvoker, highestAvailable o requireAdministrator. Sembra che si desidera asInvoker.

http://msdn.microsoft.com/en-us/library /bb756929.aspx :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="IsUserAdmin"
     type="win32"/> 
  <description>Description of your application</description> 
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
</assembly>

Altri suggerimenti

MSDN :

La virtualizzazione è abilitata solo per:

  • 32 bit processi interattivi
  • gestore di file scrivibile / cartelle e le chiavi di registro

La virtualizzazione è disabilitata per:

  • 64 processi bit
  • I processi non di interattive
  • I processi che impersonate
  • modalità kernel chiamanti
  • eseguibili che hanno un requestedExecutionLevel

La cosa migliore, come ha osservato Adam Maras, è quello di impostare un requestedExecutionLevel sulla vostra applicazione con l'aggiunta di un manifesto. Un requestedExecutionLevel di "asInvoker" farà sì che le operazioni di file per errori su luoghi protetti, invece di reindirizzare al negozio virtuale o richiesta di elevazione.

Ecco un articolo che mostra come spegnere la virtualizzazione.

http: // www. interworks.com/blogs/dsmith/2011/09/21/disabling-windows-7-virtual-store

Il corto di esso è:

-Da Windows 7 Avvio Orb, fare una ricerca per la politica di sicurezza locale e selezionarlo.

-expand Criteri locali e fare clic su Opzioni di protezione. Nel riquadro di destra, scorrere tutta la strada fino in fondo e troverete un ambiente chiamato "User Account Control: file di Virtualizzazione e scrivere registro guasti ai percorsi distinti per ogni utente"., Fare doppio clic su tale impostazione e modificarla in Disabilitato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top