Pergunta

Meu aplicativo C# falha em algumas circunstâncias quando executado com um usuário não administrador.

Estou tendo um problema com o Windows Server 2003 e estou tentando encontrar mais informações sobre ele.Pode ser um problema em outros sistemas operacionais Windows.

Parece que se eu criar um usuário não administrador e, em seguida, executar meu aplicativo sob esse usuário com o comando 'Executar como...', o ambiente dos usuários não será configurado corretamente e a variável de ambiente TEMP aponta para C :\Windows emp em vez de os usuários terem sua própria pasta Temp no perfil Documentos e Configurações.O usuário não tem permissões para esta pasta, então o aplicativo trava com o compilador .Net JIT tentando gravar/ler nesta pasta.

Se eu fizer logon como este usuário, a situação ainda estará errada.Não consigo preparar o ambiente que você normalmente obtém ao fazer login em um novo usuário, e meu aplicativo ainda não será executado sem travar durante a inicialização.Na verdade, percebi que o usuário não consegue executar calc.exe ou outros programas na pasta Windows.Parece que o ambiente deles está permanentemente bagunçado e acho que a única maneira de avançar é excluir o perfil deles.

Se eu criar um usuário não administrador e fizer logon como ele antes de executar 'Executar como ..', o ambiente será configurado corretamente e meu aplicativo funcionará.

Não consigo encontrar nenhuma informação sobre esse problema ou notas sobre se a Microsoft o reconhece.Você já passou por isso ou sabe onde posso procurar para saber mais sobre isso?

Foi útil?

Solução

Considere usar runas com um perfil para o usuário, caso não tenha.

C:\temp>runas RUNAS USAGE:

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

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

/noprofile especifica que o perfil do usuário não deve ser carregado.Isso faz com que o aplicativo carregue mais rapidamente, mas pode causar o mau funcionamento de alguns aplicativos.
/profile especifica que o O perfil do usuário deve ser carregado.Este é o padrão./env para usar ambiente atual em vez do do usuário./netonly use se o As credenciais especificadas são para remoto somente acesso./savecred para usar credenciais salvo anteriormente pelo usuário.Esta opção não está disponível no Windows XP Home Edição e será ignorado./smartcard usar se as credenciais devem ser fornecidas de um cartão inteligente./user deve ser no formato USER@DOMAIN ou DOMÍNIO\USUÁRIO
linha de comando do programa para EXE.Veja abaixo exemplos

Exemplos:

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\""

OBSERVAÇÃO:Digite a senha do usuário somente quando Solicitado.OBSERVAÇÃO:USER@DOMAIN não é Compatível com /netonly.OBSERVAÇÃO:/profile não é compatível com /netonly.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top