スタートアップ フォルダーにアプリケーションのショートカットを作成する
function New-StartupApp{ param( [switch]$CurrentUser, [parameter(mandatory)] [string]$LinkName, [parameter(mandatory)] [string]$ExeName, [parameter(mandatory)] [string]$IconName ) # スタートアップ フォルダーを指定 $Reg = "{0}:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" if($CurrentUser -eq $true){ $startupPath = $(Get-ItemProperty ($Reg -f "HKCU")).startup } else{ $StartupPath = $(Get-ItemProperty ($Reg -f "HKLM")).'common startup' } # ショートカット先をチェック $ShortCutPath = "{0}\$linkName.lnk" -f $StartupPath if((Test-Path -Path $ShortCutPath) -eq $true){ Write-Host "$LinkName.lnk Existed." -ForegroundColor Yellow return } # ショートカットを作る $WsShell = New-Object -ComObject WScript.Shell $ShortCut = $WsShell.CreateShortcut($shortCutPath) $ShortCut.TargetPath = $exeName $ShortCut.IconLocation = $iconName $ShortCut.Save() Write-Host "$linkName.lnk Created." -ForegroundColor Cyan }
スクリプトの使い方
愛用しているフリーソフト「SoftTilt」のショートカットをスタートアップに登録するサンプルは以下の通りです。Current Userのスタートアップを指定したい場合は-Currentuser スイッチをつけます。
New-StartupApp ` -CurrentUser ` -LinkName "SoftTilt" ` -ExeName "C:\My Program\SoftTilt\SoftTilt.exe" ` -IconName "C:\My Program\SoftTilt\SoftTilt.exe"
全ユーザーにしたい場合は-Currentuser スイッチを付けません。
New-StartupApp ` -LinkName "SoftTilt" ` -ExeName "C:\My Program\SoftTilt\SoftTilt.exe" ` -IconName "C:\My Program\SoftTilt\SoftTilt.exe"