Aplicativos legados que exigem privilégios de administrador no XP

3

Eu tenho um aplicativo herdado do Windows 95 que precisa ser executado como administrador. Isso é usado por alunos em um domínio da escola.

Meu predecessor configurou uma conta de administrador de domínio para essa finalidade e um script em lote "Executar como ..." para iniciar o programa, mas isso ainda exige que um professor insira uma senha. Eu gostaria de uma maneira mais simples de os alunos iniciarem o aplicativo, sem dar a eles privilégios locais aumentados ou a senha a uma conta de administrador de domínio.

Qual é a melhor maneira de fazer isso?

    
por Brent D 03.06.2009 / 05:36

7 respostas

2

Espero que você queira dizer que você é um usuário de um grupo que está no grupo de administradores do computador local e não fornece uma conta que seja membro de administradores de domínio. Não há absolutamente nenhum motivo para que a conta precise ser membro do grupo de administradores de domínio. Se você forneceu uma conta para os professores que são membros de administradores de domínio, eu recomendo que você mude o mais rápido possível. Você deve criar outro grupo no domínio e tornar esse grupo um membro do grupo de administradores locais nos computadores. Você deve ser capaz de adicionar o grupo criado ao grupo de administradores locais com um script de inicialização aplicado por um GPO.

De qualquer forma, voltemos a resolver os problemas do programa. O que você pode precisar fazer é descobrir o que o aplicativo está fazendo que precisa de acesso administrativo e, em seguida, modificar as permissões do sistema de arquivos e do registro para que os alunos tenham esses privilégios.

O sysinternals ferramentas do filemon e o regmon serão muito úteis para descobrir isso.

Se ainda não o fez, tente pesquisar no Google por informações sobre esse programa específico, talvez outra pessoa já tenha resolvido o problema e corrigido.

    
por 03.06.2009 / 05:59
3

Eu normalmente começo encontrando a chave HKLM que o software usa - esperançosamente algo sensato - e usando o regedt32 (note que o regedit regular não funciona) dê ao seu grupo controle total sobre essa chave de registro. Então eu darei a eles controle total do diretório de instalação. 99% do tempo isso resolve problemas com o administrador local necessário. Normalmente, neste momento, se não der certo, eu começo a fazer lobby para atualizar o aplicativo, às vezes isso funciona, às vezes não. Se você tiver muita sorte e for um programa comum de pesquisa, o google fornecerá os lugares exatos que você precisa para conceder permissões para ser executado como não administrador.

    
por 03.06.2009 / 05:57
0

Se estiver usando o diretório ativo

  1. Navegue até C: \ Arquivos de programas \ a pasta de aplicativos do win 95. Na guia de segurança (propriedades), acesse "Acesso de leitura e gravação" aos usuários do domínio. Eu costumo evitar o "Controle Total".

  2. Abra o Regedit e navegue até "LOCAL MACHINE \ SOFTWARE" e encontre o aplicativo win 95. Na guia permissão, conceda acesso de leitura e gravação aos "Usuários do Domínio". Mais uma vez, tento evitar o "controle total" aqui também.

  3. Este é um aplicativo incomum. Em seguida, execute o aplicativo por um minuto, como se você fosse um dos usuários (mas estivesse conectado como administrador), abra algumas telas e assim por diante. Em seguida, feche o aplicativo e abra a pesquisa do Windows. Pesquise por arquivos modificados recentemente com o registro de data e hora durante o tempo em que você estava usando o aplicativo. Você pode encontrar alguns .ini que alguns programadores naquela época (win 95) colocaram no diretório windows. Eu vou para suas propriedades e dar aos "usuários do domínio" "Controle total" .... NÃO NO WINDOWS DIRECTORY ... APENAS O ARQUIVO QUE PERTENCE AO APP.

Isso deve fazer o truque. Funcionou para mim várias vezes.

    
por 03.06.2009 / 06:27
0

Confira o site nonadmin iniciado pelo excelente Aaron Margosis . É um ótimo recurso à medida que você distribui usuários limitados no XP. Alguns aplicativos que desejam executar como administrador precisam de ajustes adicionais além das boas respostas já fornecidas para serem executados como um usuário limitado.

    
por 03.06.2009 / 11:32
0

As ferramentas filemon e regmon mencionadas anteriormente foram consolidadas no monitor de processo. Procure no link para o procmon.exe

9 vezes em 10, é só escrever para HKLM \ Software \ vendor ou c: \ arquivos de programas \ vendor, mas para casos complexos você vai querer aprender monitor de processo e como filtrá-lo para o executável específico que você estão acompanhando e começam concentrando-se nas operações de gravação em vez de ler (caso contrário, você terá centenas de milhares de entradas).

Outra opção é a virtualização de aplicativos usando produtos como o Thinapp (VMWare), o App-V (Microsoft) ou o SVS (Altiris / Symantec). Embora eu não tenha usado o Altiris em profundidade, acho que existe uma versão pessoal gratuita que pode permitir que você teste e se familiarize com os métodos usados. O Vista também tem um registro virtual e um sistema de arquivos, mas nunca usei o Vista para esse fim.

    
por 03.06.2009 / 12:11
0

Como uma solução rápida, você pode descobrir que a execução do aplicativo como membro do grupo local Usuários Avançados será suficiente. Os Usuários Avançados têm direitos de modificação em quase todo o registro e no systsem de arquivo local. Portanto, é uma boa indicação de que, se o aplicativo funcionar como um Usuário avançado, ele poderá funcionar como um usuário normal editando o registro das permissões do sistema de arquivos.

    
por 03.06.2009 / 13:52
0

Se você alterar o script em lote para usar o PSExec (da Sysinternals) em vez de "Executar como", poderá incorporar a senha no script em vez de exigir que um professor o insira. Eu uso o vbscript codificado para esse propósito.

'**Start Encode**
Const SET_PRIVELEGE_CMD = "%comspec% /c psexec -i -u User -p Password "
Set objWShell = CreateObject ("WScript.shell")
objWShell.run SET_PRIVELEGE_CMD & "c:\MyApplication.exe"

Para codificar um arquivo vbscript, é necessário colocar o texto " Iniciar Codificação " como um comentário no script antes de qualquer código, e também download e instalação do sce10en.exe da Microsoft . Depois disso, abra um prompt de comando e navegue até a pasta em que o software de codificação está instalado.

Usage:   screnc [/?] [/s] [/f] [/xl] [/l ScriptLanguage] [/e DefaultExtension]
                <source> <destination>

Encode embedded script.

/? -    Help
/s -    Silent: display no messages
/f -    Force: allow file(s) overwrite (source == destination)
/xl -   Exclude Language: does not add the language directive in asp files
/l ScriptLanguage -
        Script Default Language: specify the default script language to be
        used when encoding
/e DefaultExtension -
        Default Extension: override actual file extension. Control the
        encoder to be loaded.
<source>
        The file to encode. It can have wildcard characters.
<destination>
        The destination file. When <source> contains wildcard characters,
        <destination> is the directory where to place the encoded
        files; files will keep the same name. When <source> and
        <destination> are the same /f must be used.

Example:
C:\Program Files\Windows Script Encoder>screnc C:\temp\MyScript.vbs C:\temp\MyScript.vbe

Note que isso é codificação e não criptografando . Alguém que sabe o que está fazendo pode facilmente decodificar o script para obter a senha tornando essa solução inutilizável em algumas configurações.

    
por 03.06.2009 / 15:34