Existem atalhos do Windows como meta-parâmetros?

0

Existem parâmetros especiais que podem ser passados para os alvos dos atalhos do Windows?

Parâmetros de contexto como : o nome do atalho atual, seu caminho completo, nome da pasta de atalho ou outros? Vamos supor que o meta-parâmetro $ shortcutname seja o nome do atalho:

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

UM CASO DE USO:

Suponha que um programa que tenha um parâmetro que identifique algo dentro de seus negócios, neste exemplo, diga que o programa precisa de um nome de host e muitos outros parâmetros. Sendo o nome do host, o parâmetro exclusivo que muda e todos os demais parâmetros são corrigidos. Considere o seguinte:

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

Bem, existem usuários que não têm habilidades para editar um atalho, mas sabem como alterar um nome de arquivo no Windows Explorer. Poderíamos explicar aos usuários, apenas copiar e colar o atalho e alterar seu nome para o nome que corresponda ao nome do host desejado. Claro, se era possível passar o nome do atalho como meta-parâmetro para os alvos do atalho.

Portanto, uma solução alternativa para isso pode ser criar um arquivo .bat que possa lidar com isso. E assim, usando o mesmo procedimento, copie e cole e ajuste o nome para corresponder ao nome do host desejado, mas em alguns sistemas, as políticas do administrador podem ser uma barreira para os scripts .bat.

Preciso dizer que os usuários já usam os atalhos, existem pastas com dezenas deles, mas eles são criados pela equipe de suporte.

    
por Luciano 15.02.2017 / 20:27

1 resposta

1

A menos que você especifique explicitamente um arquivo de atalho, não há atalho atual. Você terá que usar o método wscript createshortcut (também para atalhos existentes) Veja este script:

$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

Saída:

   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

Você pode modificar as propriedades $ShortCut e usar o método .save .

    
por 15.02.2017 / 22:01