Создайте ярлык на рабочем столе, который вызывает командлет PowerShell

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

  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();

person piccus    schedule 13.11.2016    source источник
comment
это оно. спасибо PetSerAl.   -  person piccus    schedule 13.11.2016


Ответы (1)


Как указано в 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}";
person Mathias R. Jessen    schedule 13.11.2016