Não há como adicionar um atalho a um usuário inexistente ainda, então o caminho a seguir é iniciá-lo a cada inicialização e determinar se o script foi executado antes ou não.
Você pode fazer isso colocando um valor no registro ou colocando um arquivo em seu diretório de perfil (opção melhor) e verifique sua existência.
Se por algum motivo você precisar relançar o script para todos, basta remover o valor do registro ou do diretório de perfil deles.
Funciona devido à seguinte técnica.
Quando um usuário faz o login pela primeira vez, a primeira coisa que está sendo feita é: Uma pasta de perfil está sendo feita localmente, uma existente é sincronizada do servidor.
Isso é necessário porque as instalações, etc., que acontecem durante o login, precisarão estar lá e outras configurações, como políticas de grupo, também são armazenadas.
O script de logon é executado no final do login e, neste momento, o diretório de perfil existe.
Agora, considerando que esta é a primeira vez que ele é executado, a verificação do arquivo: % APPDATA% \ installed.dat pode ser usada para ver se o script foi executado antes ou não. O primeiro login, esse arquivo não está lá, então o script continua a fazer sua parte e a instalação. No final, criamos o arquivo % APPDATA% \ installed.dat e o script termina normalmente.
No próximo logon, todos os arquivos já existem, portanto, durante o login, a sincronização com o servidor é executada. Ele atualizará as alterações, mas o arquivo installed.dat também será sincronizado, portanto, o script de login encontrará o arquivo e poderá abortar o script em vez de fazer outra instalação.
E, claro, além de verificar se isso está instalado para o usuário usando o arquivo installed.dat, você também pode verificar se ele está instalado localmente (os arquivos estão presentes em "Arquivos de Programas"?
Isso garante que, quando um usuário efetua login em um novo computador, mas com um perfil existente usando Roaming Profile, e a instalação ocorra em seu perfil, nada acontece, exceto se o programa exigido localmente não estiver instalado. / p>