Windows関連

右クリックメニューからフォルダを管理者権限で開く(コマンド プロンプト)

フォルダをShiftキーを押しながら右クリックすると、「コマンド ウィンドウをここで開く」というメニューが表示されます。

RunAsAdminMenu_01

コマンド プロンプトでフォルダ内のファイル操作をしたいとき等に使える、とても便利なメニューなのですが一つだけ不満があります。

それは“管理者権限で開けない”ことです。

コマンド プロンプトを管理者として実行してフォルダ移動すれば良いだけなのですが、イチイチCDコマンド入力してパスを入力して…という作業が非常に面倒くさいです。

そこで、VBScript&レジストリ編集で右クリックメニューからフォルダを管理者権限で開けるようにしてみました。

※ 下記スクリプトとレジストリ編集の動作確認はWindows 7(64ビット版)で行いました。

スクリプトファイルの準備

まずは右クリックメニューから実行するスクリプトファイルを準備します。

Option Explicit

Private Const AdminPhrase = "AdminScript"

Dim args

Set args = WScript.Arguments
If args.Count < 1 Then
  MsgBox "引数が正しくありません。" & vbCrLf & _
         "処理を中止します。", vbExclamation + vbSystemModal
  WScript.Quit
ElseIf args.Count < 2 Then
  RunasAdminProc args(0)
  WScript.Quit
ElseIf args(1) <> AdminPhrase Then
  RunasAdminProc args(0)
  WScript.Quit
End If

With CreateObject("Shell.Application")
  Select Case IsFolderOrFile(args(0))
    Case 1: .ShellExecute "cmd.exe", " /k CD /D " & ChrW(34) & args(0) & ChrW(34)
    Case 2: .ShellExecute ChrW(34) & args(0) & ChrW(34)
  End Select
End With

Private Sub RunasAdminProc(ByVal arg)
'管理者権限でスクリプト実行
  Dim com
  
  com = ChrW(34) & WScript.ScriptFullName & ChrW(34) & " " & ChrW(34) & arg & ChrW(34) & " " & AdminPhrase
  CreateObject("Shell.Application").ShellExecute "wscript.exe", com, "", "runas"
End Sub

Private Function IsFolderOrFile(ByVal arg)
'フォルダ・ファイル判別
  Dim ret

  ret = 0 '初期化
  On Error Resume Next
  With CreateObject("Scripting.FileSystemObject")
    If .FolderExists(arg) = True Then
      ret = 1
    ElseIf .FileExists(arg) = True Then
      ret = 2
    End If
  End With
  On Error GoTo 0
  IsFolderOrFile = ret
End Function

上記コードをvbsファイルとして適当なフォルダ(今回は C:\System\RunAsAdmin.vbs )に保存します。

レジストリ編集

※ 下記レジストリ編集作業は自己責任で行ってください。念のため、事前にレジストリのバックアップを取っておくことをお薦めします。

スクリプトファイルの準備ができたら、今度は右クリックメニューに新しい項目を追加するため、レジストリの編集作業を行います。

  1. ファイルの右クリックメニュー
    • キー:HKEY_CLASSES_ROOT\*\shell\RunAsAdmin
    • (既定)エントリ(文字列値):管理者権限で開く(&A)
    • Iconエントリ(文字列値):imageres.dll,73

    RunAsAdminMenu_02

    • キー:HKEY_CLASSES_ROOT\*\shell\RunAsAdmin\command
    • (既定)エントリ(文字列値):”wscript.exe” “C:\System\RunAsAdmin.vbs” “%1”

    RunAsAdminMenu_03

  2. フォルダの右クリックメニュー
    • キー:HKEY_CLASSES_ROOT\Folder\shell\RunAsAdmin
    • (既定)エントリ(文字列値):管理者権限で開く(&A)
    • Iconエントリ(文字列値):imageres.dll,73

    RunAsAdminMenu_04

    • キー:HKEY_CLASSES_ROOT\Folder\shell\RunAsAdmin\command
    • (既定)エントリ(文字列値):”wscript.exe” “C:\System\RunAsAdmin.vbs” “%1”

    RunAsAdminMenu_05

  3. フォルダの背景を右クリックしたときのメニュー
    • キー:HKEY_CLASSES_ROOT\directory\background\shell\RunAsAdmin
    • (既定)エントリ(文字列値):管理者権限で開く(&A)
    • Iconエントリ(文字列値):imageres.dll,73

    RunAsAdminMenu_06

    • キー:HKEY_CLASSES_ROOT\directory\background\shell\RunAsAdmin\command
    • (既定)エントリ(文字列値):”wscript.exe” “C:\System\RunAsAdmin.vbs” “%V”

    RunAsAdminMenu_07

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\RunAsAdmin]
@="管理者権限で開く(&A)"
"Icon"="imageres.dll,73"

[HKEY_CLASSES_ROOT\*\shell\RunAsAdmin\command]
@="\"wscript.exe\" \"C:\\System\\RunAsAdmin.vbs\" \"%1\""

[HKEY_CLASSES_ROOT\Folder\shell\RunAsAdmin]
@="管理者権限で開く(&A)"
"Icon"="imageres.dll,73"

[HKEY_CLASSES_ROOT\Folder\shell\RunAsAdmin\command]
@="\"wscript.exe\" \"C:\\System\\RunAsAdmin.vbs\" \"%1\""

[HKEY_CLASSES_ROOT\directory\background\shell\RunAsAdmin]
@="管理者権限で開く(&A)"
"Icon"="imageres.dll,73"

[HKEY_CLASSES_ROOT\directory\background\shell\RunAsAdmin\command]
@="\"wscript.exe\" \"C:\\System\\RunAsAdmin.vbs\" \"%V\""

上記レジストリ編集作業を行うと、ファイルの右クリックメニュー、フォルダの右クリックメニュー、フォルダの背景を右クリックしたときのメニューに「管理者権限で開く(A)」メニューが追加されます。

RunAsAdminMenu_08

このメニューをクリックすると、フォルダからメニューを実行した場合は、管理者権限でそのフォルダが開かれ(コマンド プロンプト)、ファイルの場合は、管理者権限でそのファイルが開かれます。

RunAsAdminMenu_09

ファイルやフォルダのパスをスクリプトに渡して、ShellExecuteの“runas”を使って管理者権限で実行するという、シンプルな仕組みですが、やってみると中々便利です。

SmartArtからテキストを取得するPowerPointマクロ前のページ

Google ドライブ プラグイン for Microsoft Officeを使ってみた。次のページ

関連記事

  1. Windows関連

    [Windows 8]画像をタッチしてログオンする。

    ※ 下記はWindows Developer Preview(英語版・…

  2. Windows 10

    Windows Insider Meetup in Japan 2019 東京に参加しました。

    Windows Insider向けのミートアップイベント「Window…

  3. Windows関連

    OSのバージョン情報をクリップボードにコピーするVBScript

    OSのバージョンやビルド番号をブログの記事内に書くことがあるのですが、…

  4. VBScript

    Windowsのバージョン情報を取得する

    小ネタです。verコマンドを利用してWindowsのバージ…

  5. Windows 10

    Microsoft Edgeの拡張機能を色々試してみた。

    前回の記事ではMicrosoft Edgeの拡張機能(Microsof…

  6. Windows 10

    [Windows 10]Windows Ink ワークスペースの付箋を起動するショートカット

    前回の記事の関連です。前回はWindows Ink ワークスペ…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP