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

$ConfigureExeSource = "C:\Program Files (x86)\SiteKiosk\Configure.exe"
$ConfigureLoc = "C:\Users\Public\Desktop\Configure.lnk"

$StartSiteKioskExeSource = "C:\Program Files (x86)\SiteKiosk\SiteKiosk.exe"
$StartSiteKioskLoc = "C:\Users\Public\Desktop\SiteKiosk.lnk"

$CheckKioskExeSource = "C:\Users\Public\Documents\checkkiosk.exe"
$CheckKioskLoc = "C:\Users\Public\Desktop\checkkiosk.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字段的方法。

PS:我尝试上传照片,但是stackoverflow不允许我这样做,因为我的代表不到10位,我可以将它们上传到imgur,尽管有人认为这会有所帮助。

最佳答案

MSDN reference page所示,您需要设置WorkingDirectory属性。

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

关于windows - Powershell快捷方式创建不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26876832/

10-11 22:45
查看更多