Powershell 快捷方式创建不起作用



所以我有这个脚本可以自动安装一些软件。安装软件后,我会创建一些重要应用程序的快捷方式,这些快捷方式会显示在桌面上。这是我的密码。

$ConfigureExeSource = "C:Program Files (x86)SiteKioskConfigure.exe"
$ConfigureLoc = "C:UsersPublicDesktopConfigure.lnk"
$StartSiteKioskExeSource = "C:Program Files (x86)SiteKioskSiteKiosk.exe"
$StartSiteKioskLoc = "C:UsersPublicDesktopSiteKiosk.lnk"
$CheckKioskExeSource = "C:UsersPublicDocumentscheckkiosk.exe"
$CheckKioskLoc = "C:UsersPublicDesktopcheckkiosk.lnk"
#copying to desktop
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ConfigureLoc)
$Shortcut.TargetPath = $ConfigureExeSource
$Shortcut.Save()
Write-Host "Created Configure.exe Shortcut"
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($StartSiteKioskLoc)
$Shortcut.TargetPath = $StartSiteKioskExeSource
$Shortcut.Save()
Write-Host "Created Sitekiosk.exe Shortcut"
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($CheckKioskLoc)
$Shortcut.TargetPath = $CheckKioskExeSource
$Shortcut.Save()
Write-Host "Created Checkkiosk.exe Shortcut"

然后我生成了快捷方式,然后我测试了每个快捷方式。这导致除"配置"快捷方式外的所有快捷方式都能工作。

我手动创建了一个配置快捷方式,以确保我有正确的路径,我做到了。然后,我比较了其他属性,发现powershell的startIn属性为空,但在手动创建的属性中填充了"C:\Program Files(x86)\SiteKiosk"。我把它复制到powershell上,它成功了。

现在我不知道发生了什么,因为sitekiosk快捷方式在没有填写字段的情况下工作,但配置人员出于某种原因想要它,否则它就不工作了。有人知道我如何修复我的代码以正确生成一个有效的快捷方式吗,即使修复只是为快捷方式生成那个字段。我环顾四周,没有找到用快捷方式填充startIn字段的方法。

附言:我试着上传照片,但stackoverflow不让我,因为我的代表低于10,如果有人认为这会有帮助,我可以上传到imgur。

如MSDN参考页中所示,您希望设置WorkingDirectory属性。

$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ConfigureLoc)
$Shortcut.TargetPath = $ConfigureExeSource
$Shortcut.WorkingDirectory = "C:Program Files (x86)SiteKiosk"
$Shortcut.Save()

最新更新