Fiquei irritado com a tecla F1, trazendo a ajuda do Windows o tempo todo, porque acho que é bastante inútil. Portanto, a solução é renomear o arquivo "HelpPane.exe" no diretório "C: \ Windows" para outra coisa, para que pressionar F1 nunca mais faça nada. No entanto, eu gostaria de automatizar isso com um script.
Usando o PowerShell, posso tentar o seguinte script:
Rename-Item -Force -Path "C:\Windows\HelpPane.exe" -NewName "C:\Windows\HelpPane1.exe"
No entanto, sempre que executo o script, seja como administrador ou não, recebo o seguinte erro:
Isso ocorre porque o Windows tem alguma permissão de segurança no arquivo. Eu sei que posso removê-los manualmente, mexendo em Propriedades / Segurança / Avançado, mas preciso de uma maneira automatizada de fazer isso no próprio script do PowerShell; Eu não quero fazer isso manualmente todas as vezes. Infelizmente, não sei como gerenciar esses tipos de permissão avançada diretamente no PowerShell.
O que preciso adicionar ao meu script do PowerShell para garantir que o arquivo seja renomeado com êxito? Obrigado.
Para referência, estou executando o Windows 10 Enterprise 1607 build 14393.
fonte
Respostas:
Você precisa adicionar uma entrada de controle de acesso que conceda controle suficiente, mas para fazer isso, primeiro você precisa ser o proprietário do arquivo. Os administradores podem se tornar o proprietário de qualquer arquivo, mas o processo que faz o ajuste deve ter o
SeTakeOwnershipPrivilege
privilégio ativado. Ativar isso requer mexer com código não gerenciado, o que Lee Holmes fez por nós . Reformatei e alterei um pouco o script dele, que você precisará salvar em um arquivo (por exemploprivs.ps1
):Se você ainda não o fez, siga as instruções na seção Habilitando scripts do wiki de tags do PowerShell . Então podemos juntar tudo:
Isso ajusta a ACL, permitindo que você renomeie o arquivo:
fonte