A informação estava realmente na zona DACL e pode ser editada a partir da linha de comando usando a ferramenta apropriada .
Isso remove o aviso de "filename.lnk" (deve ser executado a partir do shell de comando, eu uso o CMD por causa do antigo):
ICACLS filename.lnk /SetIntegrityLevel M /L
Uma árvore de diretórios inteira pode ser tratada com
ICACLS *.lnk /T /L /SetIntegrityLevel M
correu a partir da pasta raiz.
Eu acho que seria possível criar uma operação de shell ("Desbloquear") que poderia executar o comando ICACLS ao clicar com o botão direito do mouse em um arquivo .LNK. Um tutorial inicial pode ser encontrado aqui (Vista, mas o Seven não deve ser muito diferente).
Criar comando de menu "Desbloquear"
- Abra o utilitário
REGEDIT
. Cuidado usual se aplica. REGEDIT pode destruir seu sistema! - Abra o
HKEY_CLASSES_ROOT
hive. - Localize a entrada
lnkfile
. - Clique com o botão direito do mouse em lnkfile e escolha "New > Key".
- Crie uma nova chave chamada "shell".
- Repita as etapas acima para criar uma chave chamada "Desbloquear" dentro do "shell".
- Repita o procedimento acima para criar um "comando" dentro de "Desbloquear"
-
Edite o valor Padrão da chave Desbloquear para que ele seja lido
CMD.EXE /S /C "ICACLS %1 /L /SetIntegrityLevel med"
Fechar REGEDIT
.
Agora localize o LNK que estava causando problemas. Clique com o botão direito nele; você deve poder ver uma entrada "Desbloquear" no menu. Selecione-o.
Um prompt do UAC aparece que precisa ser confirmado, e um aviso também pode aparecer para verificar se você realmente está certo de fazer isso.
Agora, se você clicar duas vezes novamente no link, o aplicativo será iniciado sem mais problemas. Se você tiver um aviso do UAC e não um aviso de abertura de arquivo , o procedimento acima não será suficiente. Você também precisa clicar com o botão direito do mouse no link e, em suas propriedades, escolher "Executar como administrador" (talvez seja necessário fazer o mesmo com o próprio aplicativo).
Testado e trabalhando no Windows 7 Pro e Ultimate.