所以我有这个脚本可以自动安装某些软件。安装软件后,我创建了一些重要应用程序的快捷方式,这些快捷方式出现在桌面上。这是我的代码。
$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"
然后我生成了快捷方式,之后我测试了每个快捷方式。除了配置快捷方式外,这导致所有这些工作正常。
我手动创建了一个配置快捷方式,以确保我有正确的路径,我做了。然后我比较了其他属性,我发现starthell属性对于我的powershell属性是空白的,但是填充了" C:\ Program Files(x86)\ SiteKiosk"在手动创建的一个。我把它复制到了powershell上,然后就可以了。
现在我没有想法会发生什么,因为sitekiosk快捷方式在没有填写字段的情况下工作但是配置者由于某种原因需要它,否则它不会工作。有没有人知道如何修复我的代码以正确生成一个有效的快捷方式,即使该修复程序只为该快捷方式生成该字段。我环顾四周,找不到用快捷方式填充startIn字段的方法。
PS:我尝试上传照片但是stackoverflow并没有让我,因为我有10个以下的代表,我可以上传到imgur但是如果有人认为它会有所帮助。
答案 0 :(得分:2)
如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()