Есть ли специальные параметры, которые могут быть переданы для целей ярлыков Windows?

Параметры контекста, такие как: имя текущего ярлыка, его полный путь, имя папки ярлыков или другие? Давайте предположим, что мета-параметр $ shortcutname был именем ярлыка:

TARGET: "c:\folder1\subfolder\myprogram.exe" $shortcutname

ОДИН ИСПОЛЬЗОВАНИЕ:

Предположим, что у программы есть параметр, который идентифицирует что-то внутри ее бизнеса, в этом примере предположим, что программе нужно имя хоста и множество других параметров. Будучи именем хоста, уникальный параметр, который изменяется, и все остальные параметры являются фиксированными. Учтите следующее:

myprogam -p1 blablabla -p2 123:5567 -p3 asbc.qwe -p4 "xxx" -hostname $hostname

Ну, есть пользователи, у которых нет навыков редактирования ярлыка, но они знают, как изменить имя файла в проводнике Windows. Мы могли бы объяснить пользователям просто скопировать и вставить ярлык и изменить его имя на имя, которое соответствует желаемому имени хоста. Конечно, если было возможно передать имя ярлыка в качестве мета-параметра для целей ярлыка.

Таким образом, обходным путем для этого может быть создание файла .bat, который может с этим справиться. И поэтому, используя ту же процедуру, скопируйте и вставьте и измените имя в соответствии с желаемым именем хоста, но в некоторых системах политики администратора могут стать барьером для сценариев .bat.

Надо сказать, что пользователи уже используют ярлыки, есть папки с десятками из них, но они создаются командой поддержки.

1 ответ1

1

Если вы явно не обращаетесь к файлу ярлыка, текущий ярлык не существует. Вам нужно будет использовать метод wscript createshortcut (также для существующих ярлыков). Смотрите этот скрипт:

$ShortCutFile = "C:\Users\$env:UserName\Desktop\Google Chrome.lnk"
$Wsh = New-Object -ComObject WScript.Shell
$ShortCut = $wsh.CreateShortcut($ShortCutFile )
$ShortCut|Get-Member
$ShortCut|Format-List

Выход:

   TypeName: System.__ComObject#{f935dc23-1cf0-11d0-adb9-00c04fd58a0b}

Name             MemberType Definition
----             ---------- ----------
Load             Method     void Load (string)
Save             Method     void Save ()
Arguments        Property   string Arguments () {get} {set}
Description      Property   string Description () {get} {set}
FullName         Property   string FullName () {get}
Hotkey           Property   string Hotkey () {get} {set}
IconLocation     Property   string IconLocation () {get} {set}
RelativePath     Property   string RelativePath () {set}
TargetPath       Property   string TargetPath () {get} {set}
WindowStyle      Property   int WindowStyle () {get} {set}
WorkingDirectory Property   string WorkingDirectory () {get} {set}

FullName         : C:\Users\UserName\Desktop\Google Chrome.lnk
Arguments        :
Description      : Internetzugriff
Hotkey           :
IconLocation     : C:\Program Files (x86)\Google\Chrome\Application\chrome.exe,0
RelativePath     :
TargetPath       : C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
WindowStyle      : 1
WorkingDirectory : C:\Program Files (x86)\Google\Chrome\Application

Вы можете изменить свойства $ShortCut и затем использовать метод .save .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .