Use o PowerShell para localizar cada usuário em um computador e soltar um atalho na inicialização

2

Tenho um ótimo script do PowerShell que coloca um atalho na pasta de inicialização de todos os usuários. O problema é que eu tenho alguns computadores que já têm usuários que precisam do mesmo atalho, mas não o obtêm porque o perfil deles já está criado nesse computador. Então, o que eu preciso é uma maneira de encontrar cada usuário no computador e, em seguida, soltar o atalho em sua pasta de inicialização.

Se eu estivesse usando o VBA, seria algo como "fazer até" ou "para cada usuário", como você faz um loop assim por meio do PowerShell?

Ah, aqui está o PowerShell para colocar o atalho na pasta all user:

$objShell = New-Object -ComObject ("WScript.Shell")
$objShortCut = $objShell.CreateShortcut("C:\Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup" + "\HipChat.lnk")
$objShortCut.TargetPath="C:\Program Files (x86)\Atlassian\HipChat4\HipChat.exe"
$objShortCut.Save()
    
por Alan R Tonn 16.01.2018 / 19:07

1 resposta

1

O problema é que ... os usuários ... precisam do mesmo atalho, mas não o obtêm porque o perfil deles já está criado no computador.

Isso não está correto. Os itens criados nos All Users locais (inicialização, área de trabalho, etc.) afetam todas as contas no computador, tanto futuras quanto existentes.

Se você estiver criando um item na pasta Inicialização de todos os usuários e os usuários existentes não puderem vê-lo, verifique se as permissões do novo item estão definidas corretamente. Uma maneira simples de fazer isso é editar as Configurações Avançadas de Segurança para a pasta contendo o novo item (por exemplo, a pasta Inicializar) e escolher Substituir todas as permissões de objeto filho pela permissão herdável deste objeto :

Não deve haver nenhuma permissão incomum que exija preservação em uma pasta como essa, tornando isso uma maneira rápida de garantir que todos os itens, incluindo o recém-adicionado, tenham as permissões adequadas.

    
por 16.01.2018 / 19:50