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. VBScript

    GUIDを作成するVBScript

    Office アドインを作成するのに必要(マニフェストのId要素)なG…

  2. VBScript

    Expression WebでVBScriptのコードを書いてみる。

    今日たまたま下記の記事を見つけました。10年近く前の古い記事です。…

  3. Windows関連

    ドラッグ&ドロップした画像をクリップボードにコピーするバッチファイル

    いくつか画像ファイルを編集する必要があったときに書いたバッチ(というよ…

  4. Windows 10

    Microsoft Edgeのお気に入りをHTML形式でインポート・エクスポートする。

    以前当ブログでMicrosoft Edgeのお気に入りを編集する方法に…

  5. Windows 10

    起動中のMicrosoft EdgeからタイトルとURLを取得するC#コード(DOM編)

    2017/8/18 追記:当記事のコードは現在動作しなくなっている…

  6. Windows関連

    Windows 8 Consumer Previewをインストールしてみました。

    先日、ついにWindows 8 Consumer Previewがリリ…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP