2016-11-13 4 views
0

Я пытаюсь создать ярлык на рабочем столе с помощью C# код, которыйСоздать ярлык на рабочем столе, который вызывает PowerShell Командлет

  1. открывает PowerShell,
  2. импорта myModule.dll,
  3. Очищает экран,
  4. показывает все мои командлеты myModule.dll.

После выполнения C# ярлык появляется на рабочем столе, но по какой-то причине котировки задаются вокруг всего shortcut.TargetPath. После удаления этих котировок вручную все в порядке.

Как предотвратить установку этих котировок?

Мой код:

object shDesktop = (object)"Desktop"; 
WshShell shell = new WshShell(); 
string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\´MyModule.lnk"; 
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress); 
shortcut.Description = "MyModule"; 
shortcut.TargetPath = @"%Windir%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -noexit -command &{ import-module \\srv\PS\MyModule.dll;clear; get-command -Module MyModule}"; 
shortcut.Save(); 
+2

'shortcut.Arguments' – PetSerAl

+0

это все. thx PetSerAl. – piccus

ответ

1

Как commented by PetSerAl, используйте Arguments свойство для передачи аргументов исполняемому:

shortcut.TargetPath = @"%Windir%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"; 
shortcut.Arguments = @"-noexit -command &{ import-module \\srv\PS\MyModule.dll;clear; get-command -Module MyModule}"; 
Смежные вопросы