Você pode impedir que os instaladores atuem nos atalhos da área de trabalho?

8

Mantive minha área de trabalho totalmente livre de atalhos. Prefiro não ter que agir para isso.

    
por Cogwheel 22.11.2009 / 06:57

6 respostas

0

Eu não acho que você pode desabilitar todos os programas de criar atalhos, mas eu uso Cercas .

Ele permite que você agrupe ícones na área de trabalho, mas o mais importante, quando você clica duas vezes na área de trabalho, oculta todos os itens que não estão nas cercas.

    
por 22.11.2009 / 07:12
4

Não há nenhuma definição de sobrescrita que eu saiba, mas você tem três opções - uma perigosa, uma que ignora e outra segura!

Caminho perigoso

Edite as configurações de segurança nas seguintes pastas: (Abra uma pasta, clique com o botão direito nela e faça as propriedades)

c:\users\<name>\Desktop

or

%userprofile%\Desktop

and

c:\users\default\Desktop

Em seguida, vá para a guia de segurança e clique em editar. Você deseja colocar a propriedade Negar em Modificar e Gravar. Você deve fazer isso apenas pelo seu usuário se o instalador for executado sob seu usuário.

Isso tem a desvantagem de você não criar ícones, mas deve funcionar.

caminho seguro

Basta excluir qualquer ícone gerado por uma instalação!

Bypass way

Clique com o botão direito do mouse em qualquer lugar da área de trabalho onde não haja itens. Expanda a opção de visualização e desmarque a opção "Mostrar ícones da área de trabalho" ... Isso, é claro, tem a desvantagem de você não ter ícones - mas se é isso que você está tentando alcançar, não importa!

    
por 22.11.2009 / 07:09
4

Aqui está uma maneira simples de usar tarefas agendadas e não é necessário escrever scripts ou programas personalizados.

Eu configurei uma tarefa agendada para excluir ícones. É um pouco imperfeito, uma vez que é executado periodicamente (e após a instalação do MSI completa), mas funciona (e depois de usá-lo por 6 meses: funciona muito bem). Exclui links diretamente na área de trabalho do usuário atual e do perfil do usuário "Público", embora isso obviamente dependa de permissão para isso.

A tarefa é criada da seguinte forma:

  • Nome: Excluir atalhos da área de trabalho
  • Executar com privilégios mais altos

  • Disparadores:
    • Emumevento:
      • Registro:Application
      • Origem:MsiInstaller
      • IDdoevento:1042
    • Diariamente:5amtodososdias

  • Ação: iniciar um programa
    • Programa / script: cmd
    • Argumentos: /c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"

  • Condições:nenhuma

Aqui está a tarefa, que você pode salvar como um arquivo .xml e depois importar para o Agendador de Tarefas do Windows:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2012-11-02T00:46:01.691625</Date>
    <Author>Gregmac</Author>
  </RegistrationInfo>
  <Triggers>
    <EventTrigger>
      <Enabled>true</Enabled>
      <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="Application"&gt;&lt;Select Path="Application"&gt;*[System[Provider[@Name='MsiInstaller'] and EventID=1042]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>
    </EventTrigger>
    <CalendarTrigger>
      <StartBoundary>2012-11-02T05:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>Greg</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>cmd</Command>
      <Arguments>/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"</Arguments>
    </Exec>
  </Actions>
</Task>
    
por 02.11.2012 / 06:04
0

Não sei se há uma maneira de fazer isso no Windows, mas sei que esse código BASIC funcionará:

Kill("C:\Users\<name>\Desktop\*.lnk")

Isso exclui automaticamente todos os atalhos na área de trabalho.

Caso contrário, não sei de nenhuma maneira, exceto excluí-los manualmente | (que leva apenas alguns segundos de qualquer maneira)
Se eu realmente não quisesse fazer isso, eu usaria o "Modo perigoso" que a @William sugere

    
por 13.09.2011 / 06:05
-1

Eu percebi que essa pergunta tem quase 7 anos, mas desde que surgiu em uma pesquisa na web, pensei em adicionar isso a ela.

Se o sistema operacional for um servidor Windows, você poderá usar o Gerenciador de Recursos de Servidor de Arquivos para criar telas de arquivos específicas para locais específicos.

    
por 22.10.2018 / 17:43
-1

Altere as permissões na pasta Desktop para impedir que qualquer pessoa, inclusive você (e programas iniciados por você, como instaladores), grave na área de trabalho. A Questão originalmente mencionada "totalmente livre" de atalhos, portanto, a Lixeira e Meu Computador também devem ser ocultados.

    
por 22.10.2018 / 19:32