OBS を Windows ログオン時に管理者で起動する | .umirc

September 12, 2021

OBS を Windows ログオン時に管理者で起動する

背景

管理者で起動されたアプリケーション上で、OBS リプレイバッファのホットキーを動かしたかった。

shell:startup スタートアップにあるショートカットのプロパティをいじるだけでは、起動時に毎回 UAC が出てきてうざいので、それを回避できる方法がほしかった。

手順

普通にショートカットを作るだけでは UAC が出てしまうので、タスクスケジューラーを介して、高い権限で実行させる。

ユーザーディレクトリ配下にスクリプトを配置しているため、パスを表現する際に <username> を使っているので、適宜置き換える。

ちなみに、以下記事を参考にした。

スクリプト作成

OBS を起動するバッチファイルと、それをプロンプトに表示させずに実行する VB スクリプトを作成する。

任意のディレクトリ(今回は C:\Users\<username>\Documents\tools)に以下 2 つのファイルを作成。

  • runOBS.bat
  • runOBS_without_prompt.vbs

内容は次のように記述。

runOBS.bat

start /d "C:\Program Files\obs-studio\bin\64bit\" obs64.exe --startreplaybuffer --minimize-to-tray --collection "default" --profile "default" --scene "replay"

runOBS_without_prompt.vbs

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c C:\Users\<username>\Documents\tools\runOBS.bat", vbhide

バッチファイルのみで再帰的に呼び出すことで実現することも可能なようですが、試していません。

タスクスケジューラーに登録

Win + R から、taskschd.msc を実行。

タスクスケジューラーライブラリ右側の Create Task を押下。

タスク名を OBS Studio Replay Buffer に設定(適宜健康可能だが、後で使うのでそのつもりで)。

General タブの Security Options にある「Run with highest privileges」にチェックを入れる。

さらに、Conditions タブの Power 下のチェックボックスをすべてアンチェック。

最後に、Actions タブから New を押下しアクションを新規作成し、以下のように設定。

  • Action: Start a Program
  • Settings
    • Program/script: C:\Users\<username>\Documents\tools\runOBS_without_prompt.vbs

トリガー等は特に設定の必要がないので、このまま OK を押下。

ショートカットの登録

Win + R から、shell:startup を起動。

右クリックメニューからショートカットを作成、実行ファイルの場所に以下を指定。

C:\Windows\System32\schtasks.exe /run /tn "OBS Studio Replay Buffer"

ショートカット名にはわかりやすそうな名前を適宜つける。Finish を押下。

続いて、作成されたショートカットを右クリックしプロパティを開き、Run を Minimized に変更。

最後に、タスクマネージャーから作成したショートカットがスタートアップ中にあり有効となっているかを確認する。

PC を再起動し、OBS の実行を確認できれば完了。


快適~。さようなら UAC。


Twitter Hatena Feedly

© www.shiomiya.com