1. ホーム
  2. powershell

[解決済み] PowerShellでショートカットを作成する方法

2022-03-01 08:31:25

質問

この実行ファイルのショートカットをPowerShellで作成したいのですが、どうすればいいですか?

C:\Program Files (x86)\ColorPix\ColorPix.exe

これはどうすればいいのでしょうか?

どのように解決するのですか?

powershellにネイティブなコマンドレットはありませんが、代わりにcomオブジェクトを使用することができます。

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$Home\Desktop\ColorPix.lnk")
$Shortcut.TargetPath = "C:\Program Files (x86)\ColorPix\ColorPix.exe"
$Shortcut.Save()

パワーシェルスクリプトを作成し、$pwd に set-shortcut.ps1 として保存することができます。

param ( [string]$SourceExe, [string]$DestinationPath )

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($DestinationPath)
$Shortcut.TargetPath = $SourceExe
$Shortcut.Save()

を呼び出すと、次のようになります。

Set-ShortCut "C:\Program Files (x86)\ColorPix\ColorPix.exe" "$Home\Desktop\ColorPix.lnk"

ターゲットとなるexeに引数を渡す場合は

#Set the additional parameters for the shortcut  
$Shortcut.Arguments = "/argument=value"  

以前 $Shortcut.Save()を実行します。

便宜上、set-shortcut.ps1 を修正したものを以下に示します。これは、2番目のパラメータとして引数を受け取ります。

param ( [string]$SourceExe, [string]$ArgumentsToSourceExe, [string]$DestinationPath )
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($DestinationPath)
$Shortcut.TargetPath = $SourceExe
$Shortcut.Arguments = $ArgumentsToSourceExe
$Shortcut.Save()