使用 PowerShell 查找计算机上的每个用户并在其启动中放置快捷方式

使用 PowerShell 查找计算机上的每个用户并在其启动中放置快捷方式

我有一个很棒的 PowerShell 脚本,它可以将快捷方式放入所有用户的启动文件夹中。问题是,我有一些计算机,其中已经有用户需要相同的快捷方式,但由于他们的配置文件已在该计算机上创建,因此无法获取。因此,我需要一种方法来找到计算机上的每个用户,然后将快捷方式放入他们的启动文件夹中。

如果我使用 VBA,它将会像“do till”或“for each user”那样,你如何通过 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

问题是...用户...需要相同的快捷方式但却无法获得它,因为他们的配置文件已经在该计算机上创建。

那是不对的。在这些位置(启动、桌面等)创建的项目All Users会影响计算机上的所有帐户,包括未来的和现有的。

如果您在所有用户启动文件夹中创建项目,而现有用户无法看到它,请确保正确设置新项目的权限。一种简单的方法是编辑文件夹的高级安全设置包含新项目(例如启动文件夹)并选择用可从该对象继承的权限替换所有子对象权限

在此处输入图片描述

像这样的文件夹中不应该有任何需要保存的不寻常的权限,这是一种快速确保所有项目(包括新添加的项目)都具有适当权限的方法。

相关内容