2014-11-11 2 views
2

Итак, у меня есть этот скрипт, который автоматизирует установку некоторого программного обеспечения. После установки программного обеспечения я создаю ярлыки для некоторых важных приложений, эти ярлыки появляются на рабочем столе. Вот мой код.Создание ярлыка Powershell не работает

$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" 

Затем я получаю ярлыки, после чего я тестировал каждый. Это привело к тому, что все они работали, кроме ярлыка «Настроить».

Я вручную создал ярлык конфигурации, чтобы убедиться, что у меня есть правильный путь, и я это сделал. Затем я сравнил другие свойства, и я обнаружил, что свойство startIn пустое для моей PowerShell, но заполнено «C: \ Program Files (x86) \ SiteKiosk» в созданном вручную. Я скопировал это на powershell один, и это сработало.

Теперь у меня нет идеи, что происходит, потому что ярлык sitekiosk работал без поля, заполненного, но по какой-то причине он его не хочет, иначе он не будет работать. кто-нибудь знает, как я могу исправить свой код, чтобы правильно генерировать ярлык, который работает, даже если исправление просто генерирует это поле для ярлыка. Я огляделся и не нашел способ заполнить поле startIn в ярлыке.

PS: Я пытался загружать фотографии, но stackoverflow не позволял мне, поскольку у меня есть ниже 10 rep, я могу загрузить их в imgur, хотя если кто-нибудь подумает, что это поможет.

ответ

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() 
Смежные вопросы