Desativa permanentemente a substituição da escolha do usuário no registro (FileExts)?

2

O curto e o doce:

Existe alguma maneira de realmente desabilitar a chave de registro HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts no Win7?

Nos sistemas afetados, os usuários NÃO devem poder definir suas próprias associações, para que a incapacidade não seja uma responsabilidade aqui. Mas não é suficiente para barrar usuários; isso é fácil. Eu também preciso impedir o próprio Windows de escrever para a chave, e nem mesmo as permissões somente de leitura do SYSTEM se mostraram capazes de fazer isso (veja o final do post).

O longo e o feio:

Tenha uma situação no Win7 Pro SP1, atualizada (apenas crítica) até outubro de 2017. O VLC e vários aplicativos de edição são usados para arquivos de áudio e vídeo. Infelizmente, para alguns tipos de arquivos eu preciso do Windows Media Player como visualizador, então não posso me livrar do fedorento, e isso é um problema. Eu tenho um conjunto cuidadosamente configurado de extensões de arquivo de multimídia configurado usando extensões normais e filetypeIDs em HKLM \ Software \ Classes. Eu instalo o VLC e edito aplicativos sem permitir que nenhum deles associe com nada, e então eu mesmo criei todas as associações e entradas de menu de contexto, eliminando muitas das suas próprias e nativas recortes do menu de contexto da Microsoft no processo para facilitar uma melhor fluxo de trabalho.

O problema com esse sonho idílico é que o Windows Media Player faz uma execução final em torno de minha configuração seqüestrando asscoations com a chave de registro HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts. Se você simplesmente excluir a chave, o Windows simplesmente a recria e a preenche. Portanto, eu preciso desabilitar completamente / bloquear a chave do Registro FileExts para que ela não interrompa a configuração cuidadosa que eu configurei.

Mas isso não é apenas um problema do WMP: programas adicionais podem causar o mesmo tipo de problema com seus respectivos tipos de arquivo. Eu tenho um problema semelhante com aplicativos gráficos. Então, por favor, não ofereça soluções que simplesmente lidem com o WMP. Eu preciso de uma solução que desative completamente a substituição de escolha do usuário oferecida pela chave FileExts. Em outras palavras, eu preciso tornar a chave FileExts inacessível não apenas para todos, mas tudo .

Não importa se isso me faz perder a funcionalidade de alguns programas: se algum aplicativo não configurar suas associações da maneira certa em HKLM \ Software \ Classes, eu mesmo o farei. Então, por favor, não me chateie por causa disso. O fato é que o FileExts é totalmente desnecessário para o Win7 ser executado. É até mesmo desnecessário executar o WMP - a única coisa que ele faz é permitir que a Microsoft mergulhe suas garras no fundo, então é muito difícil arrancar o controle dos aplicativos que você quer que você use (por exemplo, WMP). Bem, OK, também permite aos usuários uma maneira fácil de configurar as associações para tipos de arquivo único. Mas como observei acima no TL / DR, isso não é um problema aqui.

O que eu tentei: depois de tomar posse da chave e excluir tudo sob ela, impus as permissões somente leitura no SYSTEM e no grupo de administradores sem sucesso (primeiro Negue tudo, devolva Valor da consulta, Enumerar subchaves, Notificar, Ler Controle). Isso deveria ter trancado a chave como um cinto de castidade de ferro, mas sem dados. Apesar do fato de que a mensagem de aviso diz que as permissões Negar superarão todo o resto, elas não o fazem. Na próxima reinicialização do sistema, o FileExts exibirá mais uma vez suas cem entradas padrão.

Então, há uma maneira de esvaziar e, em seguida, genuinamente barrar essa chave, ou M $ tornou impossível?

    
por Ironword 12.11.2017 / 02:53

2 respostas

2

Aleluia.

Depois de reler a seção relevante em Windows 7 Annoyances , finalmente consegui reunir as pistas.

A criação de bloqueios de registro efetivos é fundamental para entender que as permissões Negar vencem as permissões Permitir. Por exemplo. um Negar pelo valor da consulta desabilitará o Valor da consulta para o usuário designado, mesmo se um Permitir também estiver presente, permitindo a consulta do usuário. Agora, isso não é novidade para ninguém, mas as implicações são importantes para o problema em questão aqui. Eu deduzi a pista crucial da seguinte passagem:

"[Ao bloquear uma chave de registro] você pode ser tentado a remover permissões Permitir para um usuário em particular (ou até mesmo todos os usuários), em vez de adicionar a entrada Negar... O problema é que isso não impediria um aplicativo ou Windows de apropriar-se ou adicionar as permissões necessárias e quebrar seu bloqueio ... [Para] tornar uma chave somente leitura ... coloque uma caixa de seleção Negar ao lado de Definir Valor, Excluir e Gravar Proprietário ". (David Karp, Windows 7 Annoyances , 156) [e eu adicionaria um Deny a "Create Subkey" também, só por segurança.]

Esta passagem afirma que, se você remover as permissões Permitir, em vez de definir as permissões Negar, por algum motivo, o Windows e outros aplicativos conseguirão contornar suas configurações, mesmo que ninguém seja permitido. Karp não explica por que esse é o caso, mas, por mais breve que seja seu comentário, fica claro que a remoção das permissões Permitir não impede que o Windows faça o que deseja. Também deixa claro que as negações não podem ser evitadas. Portanto, você deve definir as permissões Negar, em vez de remover as permissões.

Essa não é toda a história, no entanto. O procedimento com o qual eu comecei de fato começou com Negações (veja OP, próximo ao último parágrafo). Eu verifiquei toda a coluna Negar. No entanto, eu também fui até a coluna Permitir e verifiquei novamente todos os itens que dariam acesso de leitura: Enumerar subchaves, Valor da consulta, Ler & Execute e assim por diante. E esse era o calcanhar de Aquiles. Mesmo que eu não tenha permitido nenhuma das permissões de gravação, permitir qualquer permissão após a configuração de seus Denials parece ter o mesmo efeito que remover Allows, negando o bloqueio cibernético alcançado pela configuração Negações. Todos os usuários humanos, mesmo os administradores, ainda são impedidos de modificar a chave, mas o Windows não é. Este não deve ser o caso, claro. Eu defini as negações apropriadas para o usuário Everyone, e supostamente aquelas trunpassam todo o resto. Como em muitas outras coisas, a Microsoft nem sempre funciona como anunciado. Mas, desde que você não toque na coluna Permitir, isso ocorrerá.

Para verificar se o Deny sans Allowances funciona, restaurei um backup do registro para começar com um slate limpo. Então voltei para a chave e não fiz nada além de definir as recusas de permissão de gravação. Foi isso - sem marcas de verificação na coluna Permitir. E desta vez a fechadura funcionou como deveria. A chave ainda pode ser lida, mas agora o Windows não consegue mais se infiltrar e preencher novamente.

    
por 16.11.2017 / 07:12
3

Deixe o Windows fazer o que for necessário; você pode sobrescrever automaticamente essas chaves com o seu próprio conteúdo preferido por 1) editar o registro para se adequar, 2) exportar essas chaves para um arquivo .reg, 3) reimportar usando os comandos reg ou regedit.exe em um conjunto de tarefas agendadas para execução em todos os acessos ou sob demanda.

    
por 12.11.2017 / 03:49