2

У меня есть отличный скрипт PowerShell, который поместит ярлык в папку автозагрузки всех пользователей. Проблема в том, что у меня есть некоторые компьютеры, на которых уже есть пользователи, которым нужен такой же ярлык, но я не получу его, потому что их профиль уже создан на этом компьютере. Итак, мне нужен способ найти каждого пользователя на компьютере, а затем поместить ярлык в папку автозагрузки.

Если бы я использовал VBA, это было бы что-то вроде "делать до" или "для каждого пользователя", как вы можете выполнить цикл через PowerShell?

О, вот PowerShell для размещения ярлыка во всей папке пользователя:

$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()

1 ответ1

1

Проблема в том, что ... пользователи ... нуждаются в том же ярлыке, но не получат его, потому что их профиль уже создан на этом компьютере.

Это не правильно. Элементы, созданные в папках « All Users («Автозагрузка», «Рабочий стол» и т.д.), Влияют на все учетные записи на компьютере, как будущие, так и существующие.

Если вы создаете элемент в папке «Все пользователи», и существующие пользователи не видят его, убедитесь, что права доступа для нового элемента установлены правильно. Один из простых способов сделать это - отредактировать Дополнительные параметры безопасности для папки, содержащей новый элемент (например, папку «Автозагрузка»), и выбрать « Заменить все разрешения дочернего объекта на наследуемое разрешение этого объекта:

Не должно быть никаких необычных разрешений, которые требуют сохранения в такой папке, что делает этот способ быстрым, чтобы все элементы, включая только что добавленный, имели надлежащие разрешения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .