Como faço para desativar o UAC para um programa específico na conta do meu filho?

4

Eu vejo muitas respostas sobre como desabilitar o UAC para aplicativos específicos em sua própria conta pessoal, mas não vi ninguém perguntar ou responder a essa pergunta.

Nós temos um computador familiar. Cada um de nós tem uma conta, com minha conta sendo a conta de administrador. Meu filho tem um jogo que ele gosta de jogar, mas toda vez que ele inicia, eu tenho que digitar minha senha de administrador. Isso, obviamente, é bastante irritante, e eu prefiro simplesmente conceder-lhe direitos de uma vez por todas.

Como posso fazer isso?

Nick Hodges
fonte
1
qual é o jogo?
Steve Rathbone
Você tem a capacidade de escrever e compilar um programa nas linguagens de programação C ou C #?
Fran
2
Acho que apropriar-se do arquivo de execução do jogo será uma boa ideia. Além disso, você deve se apropriar da pasta onde o jogo está instalado.
avirk

Respostas:

1

Eu consegui fazer isso com o runasspc

Faça o download e extraia para um diretório que o usuário possa acessar.

Lançar o runasspcadmin.exe e digite no caminho para o seu jogo (C: \ arquivos de programas .. \ game.exe), o nome do PC onde diz localhost, o nome de usuário e senha do administrador. Deixei todas as outras opções nos padrões. Clique em "Save Cryptfile"

Agora o usuário pode iniciar o jogo usando o "runasspc.exe" do diretório extraído.

Para facilitar as coisas, você pode criar um atalho na área de trabalho para ele e renomeá-lo para o nome do jogo. Suas informações de senha são armazenadas em um arquivo crypt.spc que não pode ser lido normalmente.

Captura de tela

animepunkw
fonte
1
Mesmo que o usuário padrão possa iniciar o aplicativo com credenciais de administrador, ele será executado em uma sessão de usuário separada e o usuário padrão terá capacidade limitada de interagir com ele. Não é exatamente a coisa a ser desejada se isso é um "jogo".
kreemoweet
Ele fornece o nome de usuário e senha, assim como o UAC quer, ele deve ser capaz de jogar muito bem.
animepunkw
1

O UAC não pode ser desativado por aplicativo. Também seria uma coisa muito ilógica: se o usuário padrão não for confiável com privilégios de administrador, ele não poderá executar nenhum programa com esses privilégios. O problema está no jogo, não no UAC. Nenhum jogo deve exigir direitos administrativos (e, portanto, a capacidade de destruir) seu computador.

kreemoweet
fonte
1

Você não precisa desativá-lo, você precisa ter certeza de que o aplicativo não requer essas permissões. Enquanto você pode ir e fazer tudo isso, a abordagem mais segura é não fazer isso. O Process Monitor pode ajudá-lo a descobrir que caminhos e chaves de registro ele precisa de acesso de "administrador", conceder a eles todas as permissões de administrador e depois executar o jogo como sua conta.

Tamara Wijsman
fonte
0

Tente o seguinte:

  1. Encontre os arquivos do jogo em C: \ Arquivos de Programas (x86), clique com o botão direito no arquivo executável principal e selecione 'Propriedades' (Se você está tendo problemas, você pode encontrar o caminho da instalação, visualizando as propriedades do atalho no seu arquivo). Área de Trabalho).
  2. Clique na guia "Compatibilidade" e, em seguida, clique no botão "Alterar configurações para todos os usuários" na parte inferior da janela.
  3. Desmarque a caixa de seleção "Executar este programa como administrador" na parte inferior da janela.
  4. Clique em 'OK' para fechar a janela e salvar a preferência e, em seguida, clique em 'OK' novamente para fechar as propriedades do arquivo.
  5. Tente executar o jogo na conta de seus filhos e veja se ele resolve o problema.
Steve Rathbone
fonte
Se contornar um prompt do UAC que requer que um usuário padrão insira a senha do Administrador fosse fácil, eu ficaria chocado.
Fran
1
sim, eu estou tentando ver se o jogo precisa ser executado como admin em tudo ...
Steve Rathbone
Parece que o jogo é auto-elevativo, o que pode ser difícil de se locomover se estiver fazendo isso a partir do código compilado.
Fran
@indifferentDrum, geralmente falando assinaturas e outras coisas que apenas adicionam "fluff" à resposta são desencorajadas.
Soandos
@soandos não se preocupe.
Steve Rathbone
0

Isso é factível, mas você precisa ser capaz de esconder a senha do Administrador dentro de um programa compilado (não segurança perfeita, de qualquer forma, mas bom o suficiente para o seu filho não aprender a senha do Administrador).

Primeiro instale a psexecpartir do conjunto Sysinternals (disponível como um arquivo ZIP da Microsoft). psexecpermite executar programas como outros usuários (se você souber a senha do outro usuário). O código abaixo presume que você o instalou em C:\sysinternals\psexec.exe. Certifique-se de que a conta do seu filho pode executar o programa. Isso exigirá alterar as configurações de segurança psexec.exepara conceder permissão de leitura e execução à conta do seu filho.

Em seguida, compile o programa C abaixo em um executável (vamos chamá-lo rungame.exe), mas mude o código para ter os nomes corretos psexece o jogo, e também altere o código para definir a senha do Administrador um caractere de cada vez (veja os comentários em o código). É assim que ofuscamos a senha do Administrador dentro do EXE. Se você não tiver um compilador da Microsoft (por exemplo, Visual Studio), você pode instalar o Cygwin , que possui o compilador GCC.

Então dê rungame.exepara o seu filho (mas não o código fonte, obviamente). Quando ele quer executar o jogo, ele lança rungame.exe, que irá iniciar o jogo como administrador sem solicitar a senha.

#include <windows.h>
#include <stdlib.h>

// Be sure to use double-backslashes as path separators in this pathnames!

char * psexec = "C:\\sysinternals\\psexec.exe";   // <-- CHANGE THIS PATH AS NEEDED
char * game = "C:\\path\\to\\game\\program.exe";  // <-- CHANGE THIS PATH AS NEEDED

int main()
{
    char cmd[1024] = { 0 };
    char pw[128] = { 0 };

    // Create the password ("hello" in this example) so that it does not appear as a string in the
    // compiled version of this program.
    pw[4] = 'o';
    pw[3] = 'l';
    pw[2] = 'l';
    pw[1] = 'e';
    pw[0] = 'h';    

    strcpy(cmd, "\"");
    strcat(cmd, psexec);
    strcat(cmd, "\" -d -u Administrator -p \"");
    strcat(cmd, pw);
    strcat(cmd, "\" \"");
    strcat(cmd, game);
    strcat(cmd "\"");

    system(cmd);

    return 0;
}
Fran
fonte
BTW, tentei fazer isso com um script em lote, mas não consegui encontrar uma combinação de configurações de segurança que permitisse que o script fosse executado pelo usuário de destino sem ser legível por esse usuário. Eu não acho que é possível, e é por isso que eu fui com um programa compilado para esconder a senha do Administrador.
Fran