Domanda

La mia applicazione C # si arresta in modo anomalo in alcune circostanze quando viene eseguita con un utente non amministratore.

Riscontro un problema con Windows Server 2003 e sto cercando di trovare ulteriori informazioni a riguardo. Potrebbe essere un problema su altri sistemi operativi Windows.

Sembra che se creo un utente non amministratore e quindi eseguo la mia applicazione sotto questo utente con il comando 'Esegui come ...', l'ambiente degli utenti non viene impostato correttamente e la variabile di ambiente TEMP punta a C: \ Windows \ Temp invece che gli utenti abbiano la propria cartella Temp nel profilo Documents and Settings. L'utente non dispone delle autorizzazioni per questa cartella, quindi l'applicazione si arresta in modo anomalo con il compilatore .Net JIT tenta di scrivere / leggere in questa cartella.

Se accedo come questo utente, la situazione è ancora sbagliata. Non riesco a prepararmi per l'ambiente che normalmente si ottiene quando si accede a un nuovo utente e la mia app non funzionerà ancora senza crash durante l'avvio. Infatti ho capito che l'utente non può eseguire calc.exe o altri programmi nella cartella Windows. Sembra che il loro ambiente sia permanentemente incasinato e credo che l'unico modo per procedere sia quello di eliminare il loro profilo.

Se creo un utente non amministratore e accedo come loro prima di eseguire un 'Esegui come ..', l'ambiente viene impostato correttamente e la mia applicazione funziona.

Non riesco a trovare informazioni su questo problema o note sul riconoscimento da parte di Microsoft. Hai provato questo o sai dove posso cercare per saperne di più?

È stato utile?

Soluzione

Se non lo sei, considera l'utilizzo di runas con un profilo per l'utente.

  

C: \ temp > runas RUNAS USAGE:

RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
        /user: program

RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
        /smartcard [/user:] program
     

/ noprofile lo specifica   il profilo dell'utente non dovrebbe essere   caricato.                        Ciò causa il caricamento più rapido dell'applicazione, ma                        può causare il malfunzionamento di alcune applicazioni.
  / profilo specifica che   il profilo dell'utente deve essere caricato.                        Questo è il valore predefinito. / env da usare   ambiente corrente anziché utente.   / netonly usa se il   le credenziali specificate sono per il telecomando                        solo accesso. / salvato per utilizzare le credenziali   precedentemente salvato dall'utente.                        Questa opzione non è disponibile su Windows XP Home   Edizione                        e sarà ignorato. / smartcard usa if   le credenziali devono essere fornite   da un                        Smart card. / utente dovrebbe essere   nel formato USER @ DOMAIN o DOMAIN \ USER
  riga di comando del programma per EXE.   Vedi sotto per esempi

     

Esempi:

     
    

runas / noprofile / user: mymachine \ administrator cmd      runas / profile / env / user: mydomain \ admin " mmc% windir% \ system32 \ dsa.msc "      runas / env /user:user@domain.microsoft.com " notepad \ " my file.txt \ " "

  
     

NOTA: inserire la password dell'utente solo quando   richiesto. NOTA: USER @ DOMAIN no   compatibile con / netonly. NOTA:   / profilo non è compatibile con   / Netonly.

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