Изменить аргументы ярлыка через скрипт

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

Я считаю, что PowerShell будет необходимо для этого. Что-то с эффектом:

$oldargs = # Pull out the args from the current shortcut using voodoo magic
$args = $oldargs -replace "server1", "server2"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\app.lnk")
$Shortcut.TargetPath = "%ProgramFiles%\appdir\app.exe"
$Shortcut.Arguments = "$args"
$Shortcut.WorkingDirectory = "%ProgramFiles%\appdir"
$Shortcut.IconLocation = "%ProgramFiles%\appdir\pic.ico"
$Shortcut.Save()

На самом деле, я просто заблудился, как вытащить аргументы из текущих аргументов ярлыка.

1 ответ

Решение

Как насчет:

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\oldapp.lnk")
$oldargs = $Shortcut.Arguments
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\newapp.lnk")
$Shortcut.TargetPath = "%ProgramFiles%\appdir\app.exe"
$Shortcut.Arguments = $oldargs -replace "server1", "server2"
$Shortcut.WorkingDirectory = "%ProgramFiles%\appdir"
$Shortcut.IconLocation = "%ProgramFiles%\appdir\pic.ico"
$Shortcut.Save()
Другие вопросы по тегам