バッチファイル中で管理者権限が必要となり、管理者として実行したんだけど、
このプログラムだけは管理者として実行したくない
なんてことになった。

管理者として実行する方法は結構多くの情報があるんだけど、逆に一般ユーザーに降格するほうは情報はチラホラ。
バッチファイルで、となるともっと少なく…。

で、結論として、下記記事に巡り会えました。

SchTasksコマンドを使えば、「標準ユーザ」に降格できます。

なんという簡潔な記事でしょう。
どこかのだれかσ(゚∀゚ )とは大違いですなぁ。。

えっと、要するに、こういうことですね。

  • 一般ユーザーでプログラムを実行するようなタスクスケジュールを登録

  • それを即時実行



このままだとタスクスケジュールが残ってしまうので、

  • それを削除


も加えて、下記のようなコマンドといたしました。

schtasks /create /tn "sch_once" /tr "'C:\Program Files (x86)\Hogemaru\Hogemaru.exe' 'C:\Temp\tmp.txt'" /sc once /st 00:00
schtasks /run /tn "sch_once"
schtasks /delete /f /tn "sch_once"


ただし、これだと、下記のようなメッセージが表示されてしまう。
警告: /ST が現時刻よりも早いため、タスクは実行されない可能性があります。
成功: スケジュール タスク "sch_once" は正しく作成されました。
成功: スケジュール タスク "sch_once" の実行が試行されました。
成功: スケジュール タスク "sch_once" は正しく削除されました。


っが、まぁ、今回は良しとしよう。


さて、蛇足は続きますよぉ。
なぜこのようなことが必要になったかというと、1つのバッチファイルで、例えば、
  • アパッチのコンフィグファイルを編集するテキストエディタを起動

  • アパッチのサービスを再起動(↑の編集を適用するため)

なんてことをしようとして、管理者権限でバッチファイルを実行して、某テキストエディタ(ここでは以降「Hogemaru」と呼ぶこととする。理由は特にない。強いて言うなら気に入ってしまったから(^o^;))を起動したところ、
既に非管理者として実行されているHogemaruエディタがあります。

というダイアログが出現して、
  • 非管理者として実行する
  • 全終了してから再度開く
  • 開くのをやめる

の三択を迫られることになったから。
まぁ、今回の場合はフツーに「非管理者として実行する」ボタンを押すだけでも良かったような気もするが、まぁ、ワンアクション減らせたのだからよかったのでしょう。
めでたしめでたし。