powershell 在远程桌面上创建快捷方式,但创建快捷方式时使用“文件”而不是“文件夹”作为“目标类型”

6jjcrrmo  于 2023-02-08  发布在  Shell
关注(0)|答案(3)|浏览(139)

我正在尝试在域中的远程桌面上创建快捷方式,我是域管理员。如果我直接在目标计算机上运行以下代码,则可以创建快捷方式,并能够将我引导到目标路径。

$shortcutpath3 =  "c:\Users\Public\Desktop\Shortcuts to Test Custom\VV 1211 -TC.lnk"
$WshShell3 = New-Object -comObject WScript.Shell
$Shortcut3 = $WshShell3.CreateShortcut($shortcutpath3)
$Shortcut3.TargetPath = "\\machine\testcustom\"
$Shortcut3.Save()

我将此脚本保存为test.ps1,在另一台机器上使用以下代码运行它。代码结束时没有任何错误/警告,并使用我指定的属性在目标机器上创建了快捷方式。但它无法将我引导到目标位置,它实际上要求我选择一个程序来打开该文件。我比较了两个快捷方式的属性,并发现坏掉的快捷方式的“目标类型”是“文件”,而好的快捷方式是“文件夹”。

Invoke-Command -ComputerName TARGETSERVER -FilePath test.ps1

知道我该怎么解决这个问题吗?为什么会发生这种情况?谢谢!!!

plicqrtu

plicqrtu1#

我遇到了同样的问题,我使用了Get-Item使其工作。

$targetPath = Get-Item("\\machine\testcustom\")
$WshShell3 = New-Object -comObject WScript.Shell
$Shortcut3 = $WshShell3.CreateShortcut($shortcutpath3)
$Shortcut3.TargetPath = $targetPath.FullName
$Shortcut3.Save()
0h4hbjxa

0h4hbjxa2#

因为你是一个域管理员,我强烈建议你使用Group Policy Preference来创建快捷方式,你可以通过item-level targeting来限制特定用户/组/计算机等的快捷方式创建。

jgovgodb

jgovgodb3#

过去几个小时,我一直在与这个问题作斗争,谷歌搜索也无济于事。以下是我对后世的总结。同时,我也很感激其他建议:

  • PowerShell莫名其妙地没有直接创建快捷方式的方法,它可以创建符号链接,但1)需要管理员权限,2)行为不同。
  • 组策略首选项很棒--但只有当您的计算机在办公室或经常在VPN上时。
  • 如果你试图创建一个网络文件夹的快捷方式,设置目标路径到该文件夹只有当计算机实际上可以到达它时,脚本运行,即与组策略首选项相同的问题。PowerShell * 将 * 创建快捷方式,但目标类型将是一个文件,而不是一个文件夹(我发现没有信息在线如何控制;尾部是否为斜杠无关紧要)。
  • 运行这些代码建议的行为会有所不同,具体取决于您是以交互方式运行还是作为脚本运行。

以下是我发现的 * 确实 * 有效的方法:

  • 将目标路径设置为“C:\Windows\Explorer.exe”
  • 添加一行:$shortcut.Arguments =“""* 目标文件夹 ""”(需要使用“"”作为转义符,使快捷方式显示为C:\Windows\Explorer.exe“ 目标文件夹 *”)

因此,对于上面的示例,下面的命令应该有效(假设对c:\Users\Public\Desktop具有权限):

$shortcutpath3 =  "c:\Users\Public\Desktop\Shortcuts to Test Custom\VV 1211 -TC.lnk"
$WshShell3 = New-Object -comObject WScript.Shell
$Shortcut3 = $WshShell3.CreateShortcut($shortcutpath3)
$Shortcut3.TargetPath = "C:\Windows\Explorer.exe"
$shortcut.Arguments = """\\machine\testcustom\"""
$Shortcut3.Save()

相关问题