PowerShellでWindowsショートカットを編集し引数や作業ディレクトリを変更する自動化テクニック

PowerShellを使用してWindowsのショートカット(.lnkファイル)を編集する方法を解説します。通常、ショートカットの設定を変更するには手動でプロパティを開いて編集する必要がありますが、PowerShellを活用すれば、複数のショートカットを一括で変更したり、特定の条件に基づいて自動的に設定を変更したりできます。

本記事では、PowerShellでショートカットのターゲット(実行ファイルのパス)、引数、作業ディレクトリ、アイコンなどを変更する方法を詳しく説明します。また、フォルダ内のショートカットを一括編集するスクリプトの作成方法や、特定のアプリケーションのショートカットを自動調整する応用例についても紹介します。

Windows環境での業務効率化を目指している方、ショートカットの編集を自動化したい方に役立つ内容となっています。

目次

ショートカットファイル(.lnk)の基本構造

Windowsのショートカットファイル(.lnk)は、特定のファイルやフォルダ、アプリケーションを素早く開くためのリンクファイルです。これらは通常、エクスプローラー上で右クリックメニューから作成できますが、内部的にはさまざまなプロパティを持っています。

ショートカットファイルの主な構成要素

ショートカットファイルには、以下のような主要なプロパティが含まれます。

  1. ターゲットパス(TargetPath)
    実行するプログラムや開くファイルのパスを指定します。
    例: C:\Program Files\Notepad++\notepad++.exe
  2. 作業ディレクトリ(WorkingDirectory)
    プログラムが実行される際の初期ディレクトリを設定します。
    例: C:\Users\Username\Documents
  3. 引数(Arguments)
    プログラムを実行する際に追加のオプションを指定できます。
    例: --new-window(Chromeなどのブラウザで新規ウィンドウを開くオプション)
  4. アイコンパス(IconLocation)
    ショートカットのアイコンを指定するパス。
    例: C:\Program Files\Notepad++\notepad++.exe,0
  5. ショートカットの説明(Description)
    ショートカットの補足説明を記載できます。
  6. ホットキー(Hotkey)
    ショートカットキーを設定し、キーの組み合わせで素早く起動できるようにします。

ショートカットの編集方法

WindowsのGUIからこれらの項目を編集するには、ショートカットを右クリックし、「プロパティ」を開く必要があります。しかし、PowerShellを活用すれば、これらのプロパティをプログラム的に設定・変更でき、手作業の手間を省くことが可能になります。

次のセクションでは、PowerShellを使用してショートカットを作成・編集する方法について詳しく解説します。

PowerShellでショートカットを操作する方法

Windowsのショートカット(.lnk)ファイルをPowerShellで作成・編集するには、WScript.Shellオブジェクトを使用します。このオブジェクトを利用すると、ショートカットの作成、ターゲットや引数の変更などが可能になります。

WScript.Shellオブジェクトとは?

WScript.ShellはWindowsスクリプティングホスト(WSH)の一部であり、Windowsのさまざまな設定やオブジェクトを操作できるCOMオブジェクトです。PowerShellからこのオブジェクトを利用することで、ショートカットの作成・編集が容易に行えます。

ショートカットを作成する基本スクリプト

以下のスクリプトは、デスクトップに新しいショートカットを作成し、特定のプログラムを実行するものです。

# ショートカットを作成するPowerShellスクリプト

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# ショートカットを作成するパス(デスクトップ上)
$ShortcutPath = "$env:USERPROFILE\Desktop\MyShortcut.lnk"

# ショートカットオブジェクトを作成
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# ショートカットのターゲットを指定(例:メモ帳)
$Shortcut.TargetPath = "C:\Windows\System32\notepad.exe"

# ショートカットを保存
$Shortcut.Save()

Write-Output "ショートカットを作成しました: $ShortcutPath"

このスクリプトを実行すると、デスクトップにMyShortcut.lnkという名前のショートカットが作成され、クリックするとメモ帳が起動するようになります。

既存のショートカットを編集する方法

既存のショートカットを編集するには、CreateShortcut()メソッドで対象のショートカットを開き、プロパティを変更して保存します。

# 既存のショートカットを編集するPowerShellスクリプト

$ShortcutPath = "$env:USERPROFILE\Desktop\MyShortcut.lnk"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 既存のショートカットを開く
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# ターゲットの変更(例:電卓)
$Shortcut.TargetPath = "C:\Windows\System32\calc.exe"

# 変更を保存
$Shortcut.Save()

Write-Output "ショートカットを編集しました: $ShortcutPath"

このスクリプトを実行すると、MyShortcut.lnkのターゲットがメモ帳から電卓に変更されます。

今後の展開

次のセクションでは、ショートカットのターゲット(実行ファイル)や引数、作業ディレクトリを変更する方法を詳しく説明します。これらの設定を活用すると、プログラムの起動方法をカスタマイズし、業務の自動化を進めることができます。

ショートカットのターゲット(実行ファイル)を変更する方法

Windowsのショートカットは、特定のプログラムやファイルを素早く開くために使用されます。その中でも「ターゲット(実行ファイル)」は、ショートカットが指し示す最も重要な要素です。PowerShellを使用すれば、手作業で編集することなく、一括してターゲットを変更することが可能です。

PowerShellでショートカットのターゲットを変更する基本スクリプト

以下のスクリプトでは、デスクトップ上にある既存のショートカットのターゲットを変更する方法を示します。

# 既存のショートカットのターゲットを変更するスクリプト

# 編集するショートカットのパスを指定
$ShortcutPath = "$env:USERPROFILE\Desktop\MyShortcut.lnk"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 既存のショートカットを開く
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# ターゲットを新しい実行ファイルに変更(例:電卓)
$Shortcut.TargetPath = "C:\Windows\System32\calc.exe"

# 変更を保存
$Shortcut.Save()

Write-Output "ターゲットを変更しました: $ShortcutPath"

このスクリプトを実行すると、MyShortcut.lnkのターゲットが、もともとのプログラム(例えばメモ帳)から電卓に変更されます。

特定のフォルダ内のすべてのショートカットのターゲットを変更

特定のフォルダ内にあるすべてのショートカットのターゲットを変更する場合、以下のスクリプトを使用します。

# フォルダ内のすべてのショートカットのターゲットを変更

# ショートカットがあるフォルダを指定
$ShortcutFolder = "$env:USERPROFILE\Desktop\TestShortcuts"

# 変更後のターゲットを指定
$NewTarget = "C:\Program Files\NewApp\NewApp.exe"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 指定フォルダ内の.lnkファイルを取得
$Shortcuts = Get-ChildItem -Path $ShortcutFolder -Filter "*.lnk"

foreach ($ShortcutFile in $Shortcuts) {
    $Shortcut = $WshShell.CreateShortcut($ShortcutFile.FullName)
    $Shortcut.TargetPath = $NewTarget
    $Shortcut.Save()
    Write-Output "変更完了: $($ShortcutFile.FullName)"
}

このスクリプトを実行すると、指定フォルダ内のすべてのショートカットのターゲットが一括で変更されます。

ショートカットのターゲット変更の応用

ターゲットの変更を活用すると、以下のような用途に応用できます。

  • 古いバージョンのアプリケーションから新しいバージョンにショートカットを切り替える
  • ネットワーク上の異なるパスを指すショートカットを一括更新する
  • システム移行時に異なるドライブのパスに対応する

次のセクションでは、PowerShellでショートカットの引数を変更する方法について解説します。引数を活用することで、アプリケーションの動作を細かく制御できるようになります。

ショートカットの引数を変更する方法

Windowsのショートカットでは、引数(Arguments)を設定することで、プログラムの動作をカスタマイズできます。たとえば、Webブラウザで特定のURLを開いたり、アプリケーションを特定のモードで起動したりできます。PowerShellを活用すれば、ショートカットの引数を簡単に変更することが可能です。

PowerShellでショートカットの引数を変更する基本スクリプト

以下のスクリプトでは、デスクトップ上にあるショートカットの引数を設定または変更します。

# ショートカットの引数を変更するスクリプト

# 編集するショートカットのパスを指定
$ShortcutPath = "$env:USERPROFILE\Desktop\MyShortcut.lnk"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 既存のショートカットを開く
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# 新しい引数を設定(例:Chromeで特定のURLを開く)
$Shortcut.Arguments = "https://www.example.com"

# 変更を保存
$Shortcut.Save()

Write-Output "引数を変更しました: $ShortcutPath"

このスクリプトを実行すると、MyShortcut.lnkの引数が変更され、クリックするとGoogle Chromeがhttps://www.example.comを開くようになります。


ショートカットの引数を変更する具体的な例

例1: Google Chromeをシークレットモードで開く

$Shortcut.Arguments = "--incognito"

この設定により、ショートカットを実行するとChromeがシークレットモードで起動します。

例2: Excelで特定のファイルを開く

$Shortcut.TargetPath = "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
$Shortcut.Arguments = '"C:\Users\Username\Documents\Report.xlsx"'

Excelを開いた際に、指定したファイルが自動的に開かれます。

例3: コマンドプロンプトで特定のスクリプトを実行

$Shortcut.TargetPath = "C:\Windows\System32\cmd.exe"
$Shortcut.Arguments = "/k echo Hello, World!"

このショートカットをクリックすると、コマンドプロンプトが開き、「Hello, World!」と表示されます。


フォルダ内のすべてのショートカットの引数を変更する

特定のフォルダ内にあるショートカットの引数を一括で変更する場合は、以下のスクリプトを使用します。

# 指定フォルダ内のすべてのショートカットの引数を変更

# ショートカットがあるフォルダを指定
$ShortcutFolder = "$env:USERPROFILE\Desktop\TestShortcuts"

# 変更後の引数を指定
$NewArguments = "--fullscreen"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 指定フォルダ内の.lnkファイルを取得
$Shortcuts = Get-ChildItem -Path $ShortcutFolder -Filter "*.lnk"

foreach ($ShortcutFile in $Shortcuts) {
    $Shortcut = $WshShell.CreateShortcut($ShortcutFile.FullName)
    $Shortcut.Arguments = $NewArguments
    $Shortcut.Save()
    Write-Output "引数変更完了: $($ShortcutFile.FullName)"
}

このスクリプトを実行すると、指定フォルダ内のすべてのショートカットに--fullscreenオプションが適用されます。


ショートカットの引数変更の応用

引数の変更を活用すると、以下のような用途に応用できます。

  • 特定の設定でアプリケーションを起動する(例: --safe-mode でブラウザをセーフモードで起動)
  • 特定のファイルを自動で開く(例: C:\path\to\file.txt をエディタで開く)
  • ネットワークパスを指定してリモートアクセスを自動化(例: \\server\share

次のセクションでは、ショートカットの作業ディレクトリを変更する方法について解説します。作業ディレクトリを適切に設定することで、アプリケーションの動作を最適化できます。

ショートカットの作業ディレクトリを変更する方法

Windowsのショートカットには作業ディレクトリ(Working Directory)を設定することができます。作業ディレクトリとは、プログラムが実行された際に、デフォルトのファイルパスとして認識するフォルダのことです。適切に設定することで、スクリプトやアプリケーションが必要なファイルを正しく参照できるようになります。

PowerShellを使用すれば、手作業で編集することなく、ショートカットの作業ディレクトリを変更できます。


PowerShellでショートカットの作業ディレクトリを変更する基本スクリプト

以下のスクリプトでは、デスクトップ上のショートカットの作業ディレクトリを変更する方法を示します。

# ショートカットの作業ディレクトリを変更するスクリプト

# 編集するショートカットのパスを指定
$ShortcutPath = "$env:USERPROFILE\Desktop\MyShortcut.lnk"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 既存のショートカットを開く
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# 新しい作業ディレクトリを設定(例: "C:\MyProjects")
$Shortcut.WorkingDirectory = "C:\MyProjects"

# 変更を保存
$Shortcut.Save()

Write-Output "作業ディレクトリを変更しました: $ShortcutPath"

このスクリプトを実行すると、MyShortcut.lnkの作業ディレクトリがC:\MyProjectsに変更されます。


ショートカットの作業ディレクトリを変更する具体的な例

例1: コマンドプロンプトを特定のフォルダで開く

$Shortcut.TargetPath = "C:\Windows\System32\cmd.exe"
$Shortcut.WorkingDirectory = "C:\Users\Username\Documents"

この設定により、ショートカットをクリックすると、コマンドプロンプトが指定したフォルダで開きます。

例2: Pythonスクリプトを特定のフォルダで実行

$Shortcut.TargetPath = "C:\Python39\python.exe"
$Shortcut.WorkingDirectory = "C:\Users\Username\Scripts"
$Shortcut.Arguments = "myscript.py"

Pythonスクリプトを実行する際に、myscript.pyのあるフォルダを作業ディレクトリに設定できます。

例3: テキストエディタを特定のプロジェクトフォルダで開く

$Shortcut.TargetPath = "C:\Program Files\Notepad++\notepad++.exe"
$Shortcut.WorkingDirectory = "C:\Users\Username\Projects"

この設定を行うと、エディタが特定のプロジェクトフォルダを基準にして起動します。


フォルダ内のすべてのショートカットの作業ディレクトリを変更する

特定のフォルダ内にあるショートカットの作業ディレクトリを一括で変更する場合、以下のスクリプトを使用します。

# フォルダ内のすべてのショートカットの作業ディレクトリを変更

# ショートカットがあるフォルダを指定
$ShortcutFolder = "$env:USERPROFILE\Desktop\TestShortcuts"

# 変更後の作業ディレクトリを指定
$NewWorkingDir = "C:\NewWorkingDirectory"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 指定フォルダ内の.lnkファイルを取得
$Shortcuts = Get-ChildItem -Path $ShortcutFolder -Filter "*.lnk"

foreach ($ShortcutFile in $Shortcuts) {
    $Shortcut = $WshShell.CreateShortcut($ShortcutFile.FullName)
    $Shortcut.WorkingDirectory = $NewWorkingDir
    $Shortcut.Save()
    Write-Output "作業ディレクトリ変更完了: $($ShortcutFile.FullName)"
}

このスクリプトを実行すると、指定フォルダ内のすべてのショートカットの作業ディレクトリがC:\NewWorkingDirectoryに変更されます。


ショートカットの作業ディレクトリ変更の応用

作業ディレクトリの変更を活用すると、以下のような用途に応用できます。

  • コマンドプロンプトやPowerShellを特定のフォルダで開く
  • スクリプトを特定のフォルダを基準にして実行する
  • テキストエディタや統合開発環境(IDE)をプロジェクトフォルダで開く

次のセクションでは、ショートカットのアイコンや説明を変更する方法について解説します。アイコンを変更することで、視認性を向上させ、管理しやすくすることができます。

ショートカットのアイコンや説明を変更する方法

Windowsのショートカットは、デフォルトでは関連付けられたアプリケーションのアイコンを使用しますが、独自のアイコンを設定することで視認性を向上させたり、用途ごとに整理しやすくすることができます。また、説明(Description)を設定すると、ショートカットの目的を明確にすることが可能です。

PowerShellを使用すれば、アイコンや説明を手作業で変更することなく、一括で編集できます。


PowerShellでショートカットのアイコンを変更する基本スクリプト

以下のスクリプトでは、デスクトップ上のショートカットのアイコンを変更する方法を示します。

# ショートカットのアイコンを変更するスクリプト

# 編集するショートカットのパスを指定
$ShortcutPath = "$env:USERPROFILE\Desktop\MyShortcut.lnk"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 既存のショートカットを開く
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# 新しいアイコンのパスを設定(例: custom.ico)
$Shortcut.IconLocation = "C:\Icons\custom.ico"

# 変更を保存
$Shortcut.Save()

Write-Output "アイコンを変更しました: $ShortcutPath"

このスクリプトを実行すると、MyShortcut.lnkのアイコンがC:\Icons\custom.icoに変更されます。


ショートカットのアイコン変更の具体的な例

例1: 標準のWindowsアプリケーションのアイコンを変更

$Shortcut.IconLocation = "C:\Windows\System32\shell32.dll,5"

この設定では、Windowsのシステムアイコン(shell32.dll内の5番目のアイコン)を適用します。

例2: 特定のアプリケーションのアイコンを指定

$Shortcut.IconLocation = "C:\Program Files\Notepad++\notepad++.exe,0"

この設定では、Notepad++の実行ファイルからアイコンを取得して適用します。

例3: カスタムアイコンを使用

$Shortcut.IconLocation = "C:\Users\Username\Pictures\CustomIcon.ico"

この設定では、ユーザーが指定した.icoファイルをアイコンとして適用します。


PowerShellでショートカットの説明を変更する基本スクリプト

ショートカットの説明(Description)は、アイコンのツールチップとして表示されます。

# ショートカットの説明を変更するスクリプト

# 編集するショートカットのパスを指定
$ShortcutPath = "$env:USERPROFILE\Desktop\MyShortcut.lnk"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 既存のショートカットを開く
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# 新しい説明を設定
$Shortcut.Description = "このショートカットはカスタム設定されています。"

# 変更を保存
$Shortcut.Save()

Write-Output "説明を変更しました: $ShortcutPath"

このスクリプトを実行すると、ショートカットに説明が追加され、マウスをホバーするとツールチップとして表示されます。


フォルダ内のすべてのショートカットのアイコンや説明を変更する

特定のフォルダ内にあるすべてのショートカットのアイコンと説明を一括で変更する場合、以下のスクリプトを使用します。

# フォルダ内のすべてのショートカットのアイコンと説明を変更

# ショートカットがあるフォルダを指定
$ShortcutFolder = "$env:USERPROFILE\Desktop\TestShortcuts"

# 新しいアイコンのパスを指定
$NewIconPath = "C:\Icons\new_icon.ico"

# 新しい説明を指定
$NewDescription = "更新されたショートカット"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 指定フォルダ内の.lnkファイルを取得
$Shortcuts = Get-ChildItem -Path $ShortcutFolder -Filter "*.lnk"

foreach ($ShortcutFile in $Shortcuts) {
    $Shortcut = $WshShell.CreateShortcut($ShortcutFile.FullName)
    $Shortcut.IconLocation = $NewIconPath
    $Shortcut.Description = $NewDescription
    $Shortcut.Save()
    Write-Output "アイコンと説明変更完了: $($ShortcutFile.FullName)"
}

このスクリプトを実行すると、指定フォルダ内のすべてのショートカットのアイコンと説明が変更されます。


ショートカットのアイコンと説明変更の応用

ショートカットのアイコンや説明を変更することで、以下のような用途に活用できます。

  • 異なる用途のショートカットを視覚的に識別しやすくする
  • 業務ごとにカスタムアイコンを適用し、作業の効率を向上させる
  • 説明を追加して、ショートカットの目的を明確にする
  • 会社の標準フォーマットに合わせて統一したアイコンや説明を適用する

次のセクションでは、複数のショートカットを一括変更するスクリプトの作成について解説します。大量のショートカットを効率的に編集する方法を紹介します。

複数のショートカットを一括変更するスクリプトの作成

Windows環境では、複数のショートカットを一括で変更する必要が生じることがあります。たとえば、アプリケーションのバージョンアップによって実行ファイルのパスが変更された場合や、ショートカットの引数や作業ディレクトリを統一したい場合です。PowerShellを使用すれば、特定のフォルダ内のショートカットを一括で編集することが可能です。


指定フォルダ内のすべてのショートカットのターゲットを変更

以下のスクリプトでは、指定したフォルダ内にある .lnk ショートカットのターゲット(実行ファイル)をまとめて変更します。

# フォルダ内のすべてのショートカットのターゲットを変更するスクリプト

# ショートカットがあるフォルダを指定
$ShortcutFolder = "$env:USERPROFILE\Desktop\TestShortcuts"

# 変更後のターゲットパスを指定
$NewTarget = "C:\Program Files\NewApp\NewApp.exe"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 指定フォルダ内の.lnkファイルを取得
$Shortcuts = Get-ChildItem -Path $ShortcutFolder -Filter "*.lnk"

foreach ($ShortcutFile in $Shortcuts) {
    $Shortcut = $WshShell.CreateShortcut($ShortcutFile.FullName)
    $Shortcut.TargetPath = $NewTarget
    $Shortcut.Save()
    Write-Output "ターゲット変更完了: $($ShortcutFile.FullName)"
}

このスクリプトを実行すると、TestShortcuts フォルダ内にあるすべてのショートカットのターゲットが C:\Program Files\NewApp\NewApp.exe に変更されます。


ショートカットの引数を一括変更

引数を一括で変更したい場合は、以下のスクリプトを使用します。

# フォルダ内のすべてのショートカットの引数を変更

# ショートカットがあるフォルダを指定
$ShortcutFolder = "$env:USERPROFILE\Desktop\TestShortcuts"

# 変更後の引数を指定
$NewArguments = "--fullscreen"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 指定フォルダ内の.lnkファイルを取得
$Shortcuts = Get-ChildItem -Path $ShortcutFolder -Filter "*.lnk"

foreach ($ShortcutFile in $Shortcuts) {
    $Shortcut = $WshShell.CreateShortcut($ShortcutFile.FullName)
    $Shortcut.Arguments = $NewArguments
    $Shortcut.Save()
    Write-Output "引数変更完了: $($ShortcutFile.FullName)"
}

このスクリプトを実行すると、TestShortcuts フォルダ内のすべてのショートカットに --fullscreen オプションが適用されます。


ショートカットのアイコンを一括変更

視認性を向上させるために、すべてのショートカットのアイコンを統一したい場合は、以下のスクリプトを使用します。

# フォルダ内のすべてのショートカットのアイコンを変更

# ショートカットがあるフォルダを指定
$ShortcutFolder = "$env:USERPROFILE\Desktop\TestShortcuts"

# 変更後のアイコンパスを指定
$NewIconPath = "C:\Icons\new_icon.ico"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 指定フォルダ内の.lnkファイルを取得
$Shortcuts = Get-ChildItem -Path $ShortcutFolder -Filter "*.lnk"

foreach ($ShortcutFile in $Shortcuts) {
    $Shortcut = $WshShell.CreateShortcut($ShortcutFile.FullName)
    $Shortcut.IconLocation = $NewIconPath
    $Shortcut.Save()
    Write-Output "アイコン変更完了: $($ShortcutFile.FullName)"
}

このスクリプトを実行すると、フォルダ内のすべてのショートカットのアイコンが C:\Icons\new_icon.ico に変更されます。


ショートカットの作業ディレクトリを一括変更

作業ディレクトリを一括で変更する場合は、以下のスクリプトを使用します。

# フォルダ内のすべてのショートカットの作業ディレクトリを変更

# ショートカットがあるフォルダを指定
$ShortcutFolder = "$env:USERPROFILE\Desktop\TestShortcuts"

# 変更後の作業ディレクトリを指定
$NewWorkingDir = "C:\NewWorkingDirectory"

# WScript.Shellオブジェクトを作成
$WshShell = New-Object -ComObject WScript.Shell

# 指定フォルダ内の.lnkファイルを取得
$Shortcuts = Get-ChildItem -Path $ShortcutFolder -Filter "*.lnk"

foreach ($ShortcutFile in $Shortcuts) {
    $Shortcut = $WshShell.CreateShortcut($ShortcutFile.FullName)
    $Shortcut.WorkingDirectory = $NewWorkingDir
    $Shortcut.Save()
    Write-Output "作業ディレクトリ変更完了: $($ShortcutFile.FullName)"
}

このスクリプトを実行すると、フォルダ内のすべてのショートカットの作業ディレクトリが C:\NewWorkingDirectory に変更されます。


まとめ

PowerShellを活用することで、以下のような一括変更が可能になります。

  • ターゲット(実行ファイル)を変更
  • 引数を変更
  • アイコンを変更
  • 作業ディレクトリを変更

このように、PowerShellを使ってフォルダ内のショートカットを一括編集することで、手作業の手間を削減し、効率的に管理できます。

次のセクションでは、特定のアプリケーションのショートカットを自動調整するシナリオについて解説します。実際の業務でどのように活用できるか、具体的な応用例を紹介します。

特定のアプリケーションのショートカットを自動調整するシナリオ

PowerShellを使用して特定のアプリケーションのショートカットを自動調整することで、業務の効率化や環境設定の一元管理が可能になります。本セクションでは、ブラウザ、開発ツール、ゲームランチャーなどのアプリケーションのショートカットを自動で設定・変更するシナリオを紹介します。


シナリオ1: Google Chrome のショートカットをカスタマイズ

Google Chromeのショートカットを作成・変更し、特定のURLを開いたり、シークレットモードで起動するように設定できます。

Chromeのショートカットを作成し、特定のURLを開く

$ShortcutPath = "$env:USERPROFILE\Desktop\ChromeShortcut.lnk"
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# Chromeの実行パスを設定
$Shortcut.TargetPath = "C:\Program Files\Google\Chrome\Application\chrome.exe"

# 特定のURLを開くように引数を設定
$Shortcut.Arguments = "https://www.example.com"

# 作業ディレクトリを設定
$Shortcut.WorkingDirectory = "C:\Program Files\Google\Chrome\Application"

# アイコンを変更
$Shortcut.IconLocation = "C:\Program Files\Google\Chrome\Application\chrome.exe,0"

# ショートカットを保存
$Shortcut.Save()
Write-Output "Chromeのショートカットを作成しました: $ShortcutPath"

このスクリプトを実行すると、デスクトップにGoogle Chromeのショートカットが作成され、クリックするとhttps://www.example.comが開きます。


シナリオ2: VS Code のショートカットを特定のプロジェクト用に作成

開発作業では、Visual Studio Codeのショートカットを特定のプロジェクト用に設定すると便利です。

VS Codeを特定のフォルダで開くショートカット

$ShortcutPath = "$env:USERPROFILE\Desktop\VSCode_Project.lnk"
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# VS Codeの実行パスを設定
$Shortcut.TargetPath = "C:\Users\Username\AppData\Local\Programs\Microsoft VS Code\Code.exe"

# プロジェクトフォルダを開くように引数を設定
$Shortcut.Arguments = "C:\Users\Username\Projects\MyProject"

# 作業ディレクトリを設定
$Shortcut.WorkingDirectory = "C:\Users\Username\Projects\MyProject"

# アイコンを変更
$Shortcut.IconLocation = "C:\Users\Username\AppData\Local\Programs\Microsoft VS Code\Code.exe,0"

# ショートカットを保存
$Shortcut.Save()
Write-Output "VS Codeのプロジェクト用ショートカットを作成しました: $ShortcutPath"

このスクリプトを実行すると、デスクトップにVS Codeのショートカットが作成され、クリックするとMyProjectのフォルダが開きます。


シナリオ3: ゲームのショートカットを一括調整

ゲームランチャーのショートカットに特定のオプションを追加することで、パフォーマンスを向上させたり、設定を統一できます。

Steamゲームのショートカットに起動オプションを追加

$ShortcutPath = "$env:USERPROFILE\Desktop\GameShortcut.lnk"
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# Steamの実行パスを設定
$Shortcut.TargetPath = "C:\Program Files (x86)\Steam\steam.exe"

# 特定のゲームを起動する引数(例:ゲームID 570 (Dota 2))
$Shortcut.Arguments = "-applaunch 570 -high -novid"

# 作業ディレクトリを設定
$Shortcut.WorkingDirectory = "C:\Program Files (x86)\Steam"

# アイコンを変更
$Shortcut.IconLocation = "C:\Program Files (x86)\Steam\steam.exe,0"

# ショートカットを保存
$Shortcut.Save()
Write-Output "Steamゲームのショートカットを作成しました: $ShortcutPath"

このスクリプトを実行すると、デスクトップにSteamのDota 2用ショートカットが作成され、クリックすると高パフォーマンス設定(-high)で起動します。


シナリオ4: ネットワークフォルダへのショートカットを自動作成

業務環境では、ネットワークフォルダへのショートカットを設定し、アクセスを簡単にすることが求められることがあります。

共有フォルダへのショートカットを作成

$ShortcutPath = "$env:USERPROFILE\Desktop\NetworkFolder.lnk"
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)

# ネットワークパスをターゲットに設定
$Shortcut.TargetPath = "\\Server\SharedFolder"

# 作業ディレクトリを設定
$Shortcut.WorkingDirectory = "\\Server\SharedFolder"

# アイコンを変更
$Shortcut.IconLocation = "C:\Windows\System32\shell32.dll,3"

# ショートカットを保存
$Shortcut.Save()
Write-Output "ネットワークフォルダのショートカットを作成しました: $ShortcutPath"

このスクリプトを実行すると、デスクトップに共有フォルダへのショートカットが作成され、クリックするとネットワークフォルダが開きます。


まとめ

PowerShellを活用すると、特定のアプリケーションのショートカットを自動で設定・変更することができます。

シナリオ目的設定内容
Chromeのショートカットを変更特定のURLを開くhttps://www.example.com を指定
VS Codeのショートカットをカスタマイズプロジェクトごとに開く"C:\Users\Username\Projects\MyProject" を指定
Steamゲームのショートカットを編集パフォーマンス向上-high -novid のオプションを追加
ネットワークフォルダのショートカットを作成共有フォルダにアクセス\\Server\SharedFolder を指定

PowerShellを使うことで、手作業の手間を削減し、一括でショートカットの設定を適用することが可能になります。

次のセクションでは、この記事のまとめを行います。PowerShellを活用したショートカット編集のメリットを振り返り、実際の業務にどのように応用できるかを整理します。

まとめ

本記事では、PowerShellを活用してWindowsのショートカットを編集する方法について解説しました。手作業での編集に比べ、一括処理や自動化が可能になるため、業務の効率化に大きく貢献します。

学んだポイント

  1. ショートカットの基本構造(ターゲット、作業ディレクトリ、引数、アイコンなど)
  2. PowerShellでショートカットを作成・編集する方法
  3. ターゲット(実行ファイル)の変更
  4. 引数の設定でアプリの動作をカスタマイズ
  5. 作業ディレクトリの変更によるアプリの適切な実行
  6. アイコンや説明の変更で視認性を向上
  7. フォルダ内のショートカットを一括変更するスクリプト
  8. 特定のアプリケーションのショートカットを自動調整する実用例

PowerShellでショートカットを管理するメリット

一括処理が可能(複数のショートカットを一度に変更)
手作業のミスを防げる(スクリプトを使うことで統一された設定が可能)
定期的なメンテナンスが容易(アプリケーションのアップデート時に自動対応)
業務の効率化(IT管理者や開発者の作業を簡素化)

応用例

  • 社内PCの標準ショートカットを一括作成
  • 開発環境のショートカットをプロジェクトごとに設定
  • 業務アプリケーションのショートカットを統一
  • ゲームの設定を一括適用(フルスクリーンモード・高パフォーマンス起動)
  • ネットワークフォルダへのアクセスを簡単にする

PowerShellを活用すれば、ショートカットの管理が効率化され、Windows環境のカスタマイズが自由自在になります。本記事のスクリプトを活用して、自身の環境に最適な自動化を実践してみてください。

コメント

コメントする

目次