使用 Powershell 创建将参数传递给 shell32.dll 的快捷方式

Creating a shortcut passing arguments to shell32.dll using Powershell

所以我试图制作一个 'create shortcut' 脚本来在我的用户桌面上生成一个 link 以将他们直接带到 Windows 10 中的“添加打印机向导”。以编程方式说起来,我非常确定这是不可能的,但这是来自上面的指令。当脚本运行时,Arguments 字段被删除。

更新

我可以手动创建,但不能以编程方式创建。

帮助我 Whosebug ...你是我们唯一的希望

$sArguments = "shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder"
$AppLocation = "C:\Windows\System32\rundll32.exe"
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\UAT Devices and Printers.lnk")
$Shortcut.TargetPath = $AppLocation
$Shortcut.Arguments = $sArguments
$Shortcut.IconLocation = "devicecenter.dll,0"
$Shortcut.Description ="UAT Devices and Printers"
$Shortcut.WorkingDirectory ="C:\Windows\System32"
$Shortcut.Save()

我觉得这个问题很愚蠢,但是有人能看出我错过了什么吗?

如果您只是想触发 Add Printer Driver Wizard,这里是您的代码的固定版本(参数不同,参考:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32-printui):

$sArguments = "printui.dll,PrintUIEntry /id"
$AppLocation = "C:\Windows\System32\rundll32.exe"
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\UAT Devices and Printers.lnk")
$Shortcut.TargetPath = $AppLocation
$Shortcut.Arguments = $sArguments
$Shortcut.IconLocation = "devicecenter.dll,0"
$Shortcut.Description ="UAT Devices and Printers"
$Shortcut.WorkingDirectory ="C:\Windows\System32"
$Shortcut.Save()