จะเปิดไฟล์เพื่อแก้ไขในโหมดผู้ดูแลระบบได้อย่างไร?


49

ฉันมีไฟล์. config ตั้งให้เปิดใน Notepad ++ โดยทั่วไปไฟล์ที่ฉันแก้ไขจะอยู่ในตำแหน่งที่ได้รับการป้องกัน (เช่น c: \ windows \, ​​c: \ program files ... , ฯลฯ .. ) ดังนั้นจึงต้องมีการเข้าถึงของผู้ดูแลระบบ

ฉันต้องการที่จะสามารถดับเบิลคลิกที่ไฟล์. config และเปิด Notepad ++ พร้อมสิทธิ์ผู้ดูแลระบบ ไม่เป็นไรถ้าพรอมต์ UAC เกิดขึ้น

มีวิธีทำเช่นนั้นหรือไม่?

คำตอบ:


53

วิธีที่ดีที่สุดคือไปยังโฟลเดอร์ที่ติดตั้ง Notepad ++ (ไฟล์โปรแกรมสำหรับ Windows 32 บิตและไฟล์โปรแกรม (x86) สำหรับ Windows 64 บิต) ที่นั่นค้นหาไฟล์ปฏิบัติการ Notepad ++ คลิกขวาที่ไฟล์และเลือก ความเข้ากันได้และที่ด้านล่างทำเครื่องหมายในช่องสำหรับเรียกใช้ในฐานะผู้ดูแลระบบ

สิ่งนี้จะทำให้แอปพลิเคชันของคุณปรากฏขึ้นพร้อมคำเตือน UAC เสมอ แต่คุณจะสามารถแก้ไขได้ในฐานะผู้ดูแลระบบ

โชคดี!

แก้ไข: พบบทความนี้ที่ช่วยให้คุณสร้างทางลัดโดยไม่ต้องเปิดพรอมต์ UAC เป็นเทคนิคสำหรับ Windows 10 แต่ควรใช้วิธีเดียวกันกับ Win7 +


2
เราสามารถปรับปรุงเกี่ยวกับเรื่องนี้ได้โดยการทำสำเนาไฟล์ exe ++ ++ และตั้งค่าเฉพาะสำเนาเพื่อให้ทำงานในฐานะผู้ดูแลระบบ ด้วยวิธีนี้แผ่นจดบันทึกทั่วไป ++ จะไม่เตือนคุณทุกครั้ง
Joel Coehoorn

8
@JoelCoehoorn ที่สามารถทำได้ผ่านทางลัดแทนสำเนาทั้งหมดของ exe (ไปที่Advanced...ปุ่มบนShortcutแท็บของหน้าต่างคุณสมบัติทางลัดเพื่อเปิดใช้งาน) ด้วยวิธีนี้หากคุณอัปเดตแผ่นจดบันทึก ++ มันจะอัปเดตทั้งที่ไม่ได้ยกระดับและ ทางลัดที่ยกระดับ
Scott Chamberlain

และชอบsuperuser.com/a/1462628/193963ใส่ทั้งทางลัดไปยังเมนู shell sendto
Bernhard

19

ฉันพบว่าการค้นหาโปรแกรมแก้ไข (เช่น Notepad ++) ในเมนูเริ่มจากนั้นพิมพ์Ctrl+ Shift+ Enterให้คุณเรียกใช้โปรแกรมในฐานะผู้ดูแลระบบ

จากนั้นคุณควรจะสามารถเปิดและแก้ไขไฟล์ที่ต้องใช้สิทธิ์ระดับสูง


3
นี่ไม่ใช่คำตอบสำหรับคำถามจริงๆเนื่องจากมันถามว่าจะเปิดไฟล์เพื่อแก้ไขอย่างไรด้วยสิทธิ์ระดับสูง
Der Hochstapler

คุณถูกต้องคุณเปิดไฟล์จากภายในตัวแก้ไขด้วยวิธีนี้ไม่ใช่โดยดับเบิลคลิก
elolos

12

เพื่อเป็นการปรับปรุงคำตอบของ @ Askeliคุณสามารถสร้างสำเนาของไฟล์ปฏิบัติการ ++ ได้ (ตั้งชื่อให้มันเหมือน NotepadUAC) จากนั้นตั้งค่าโหมดความเข้ากันได้ในคุณสมบัติของสำเนาของคุณเพื่อกำหนดโหมดผู้ดูแลระบบตามที่ Askeli แนะนำ ตอนนี้คุณควรจะสามารถตั้งค่าไฟล์. config ของคุณให้เปิดขึ้นโดยใช้การคัดลอกแทนที่จะเป็นแบบดั้งเดิม

ข้อได้เปรียบที่นี่คือคุณจะไม่เห็นพรอมต์ UAC เมื่อเปิดไฟล์ด้วยไฟล์ Notepad ++ .exe ดั้งเดิม (ค่าเริ่มต้น) ข้อเสียคือสำเนานี้ไม่จำเป็นต้องทำให้ตัวเองทันสมัยในแบบเดียวกับต้นฉบับและในที่สุดอาจทำให้เกิดปัญหากับรุ่น. dll หรือ config ที่ไม่ตรงกัน แต่มันง่ายพอที่จะถอนการติดตั้ง / ติดตั้งใหม่หากเกิดขึ้น


คำแนะนำของ @ akseli ทำงานได้ แต่ฉันยังคงเห็นข้อความแจ้ง UAC อย่างไรก็ตามฉันสามารถอยู่กับมันได้
AngryHacker

10

ทางออกของฉันคือการตรึง Notepad ++ ไปที่แถบงาน เมื่อฉันต้องการมันสำหรับการแก้ไขไฟล์ระบบฉันคลิกขวาบนมันคลิกที่ "Notepad ++" และคลิกที่ "Run as administrator"

โซลูชันอื่น ๆ ที่ปรับเปลี่ยนทางลัดหรือทำสำเนาของมันก็ใช้ได้ถ้าคุณแก้ไขไฟล์ระบบตลอดเวลา ฉันใช้ Notepad ++ ทุกวัน แต่ฉันไม่ยุ่งกับไฟล์ที่ได้รับการป้องกันทุกวัน


6

สิ่งนี้ไม่สามารถใช้ได้เมื่อคำถามเดิมถูกโพสต์ในปี 2010 แต่เป็นของปี 2012 - คำตอบที่ดีที่สุด (อย่างน้อยที่สุดฉันจะพิจารณา):

ติดตั้ง nppSaveAsAdmin:

จากhttp://sourceforge.net/projects/nppsaveasadmin :

ปลั๊กอินนี้ช่วยให้คุณสามารถบันทึกไฟล์ใด ๆ ในฐานะผู้ดูแล เพียงกด "บันทึก" ใน Notepad ++ และหากคุณไม่ได้รับอนุญาตให้เปลี่ยนไฟล์นี้ในฐานะผู้ใช้ Notepad ++ จะบันทึกเป็นผู้ดูแลระบบ รองรับ Windows XP, Windows Vista, Windows 7, Windows 8

ปลั๊กอิน "บันทึกเป็นผู้ดูแลระบบ" พร้อมใช้งานสำหรับการติดตั้งที่ง่ายและรวดเร็วจากตัวจัดการปลั๊กอิน Notepad ++ (ตัวจัดการปลั๊กอิน / ปลั๊กอิน / แสดงตัวจัดการปลั๊กอิน / มีให้เลือก "บันทึกเป็นผู้ดูแลระบบ" คลิก "ติดตั้ง")

Notepad ++ จะยังคงทำงานตามปกติและไม่จำเป็นต้องรันด้วยโทเค็นการจัดการ UAC แบบเต็ม อย่างไรก็ตามถ้า Notepad ++ เห็นว่าคุณกำลังพยายามบันทึกไฟล์ที่คุณไม่ได้รับอนุญาตให้เข้าถึงมันจะแยกไปที่ NppAdminAccess.exe (แสดงพร้อมท์ UAC) เพียงคลิก "ใช่" และไฟล์ของคุณจะถูกบันทึกด้วยสิทธิ์ระดับผู้ดูแลระบบ


2
  1. ทำสำเนา. exe ของเท็กซ์เอดิเตอร์ของคุณลงในโฟลเดอร์ไฟล์โปรแกรมเดียวกันและเพิ่ม "Admin" หรือต่อท้ายชื่อ
  2. คลิกขวาที่ exe ใหม่ -> คุณสมบัติ -> ความเข้ากันได้ -> ระดับสิทธิ์ -> ทำเครื่องหมาย "เรียกใช้โปรแกรมนี้ในฐานะผู้ดูแลระบบ"
  3. สร้างทางลัดไปที่ exe นี้บนเดสก์ทอป / ทาสก์บาร์ / เมนูเริ่มต้นของคุณ
  4. ลากไฟล์ txt ที่คุณต้องการแก้ไขในฐานะผู้ดูแลระบบ (หรือทางลัดไปยังหนึ่ง) ลงในทางลัดนี้

เป็นวิธีที่ง่ายที่สุด / ยืดหยุ่นที่สุดที่ฉันพบเมื่อทำสิ่งนี้เมื่อฉันต้องแก้ไขไฟล์โฮสต์สำหรับการพัฒนาเว็บ แน่นอนถ้าคุณต้องการเปิดไฟล์ทั้งหมดของนามสกุลเดียวในฐานะผู้ดูแลระบบตามคำแนะนำของ Joel คุณสามารถใช้ "เปิดด้วย ... " -> "เลือกโปรแกรมเริ่มต้น" ในสำเนาที่คุณสร้างขึ้น


1

ถอนการติดตั้งปลั๊กอิน (ยกเว้นผู้จัดการปลั๊กอิน) นี่เป็นการแก้ไขปัญหาสำหรับฉัน คุณสามารถติดตั้งปลั๊กอินได้ตลอดเวลาเพื่อดูว่าปลั๊กอินใดทำให้เกิดปัญหา


1

โซลูชันต่อไปนี้ไม่อนุญาตให้ใช้กับสถานการณ์ดับเบิลคลิกจริง ๆ แต่ให้พลังในการเลือก (และในทางเทคนิคแล้วยังเป็นการคลิกสองครั้ง):

คุณสามารถเพิ่มรายการเมนู 'เรียกใช้ในฐานะผู้ดูแลระบบ' ลงในเมนูบริบทของเชลล์ตามประเภทไฟล์ (หรือต่อโปรแกรม) ดูบทความนี้สำหรับรายละเอียดเกี่ยวกับการปรับแต่งรีจิสทรี


1
@Ramhound คุณจะโปรดตรวจสอบบทความที่เชื่อมโยงและคิดทบทวน downvote ของคุณหรือไม่ หรืออีกวิธีหนึ่งชี้ให้เห็นคำตอบที่คุณอ้างถึง? คำตอบของ akseli จะเรียก UAC เสมอ คำตอบของ Joel Coehoorn ต้องการสำเนาของไฟล์. exe (ซึ่งจะไม่ได้รับการอัพเดตอัตโนมัติตามที่เขากล่าวไว้) นอกจากนี้มันจะทริกเกอร์ UAC สำหรับประเภทไฟล์เฉพาะเสมอ คำตอบของ Marlon เพียงแค่เริ่มโปรแกรมในฐานะผู้ดูแลระบบคุณยังคงต้องเปิดไฟล์ด้วยตนเองใน Notepad ++ และคำตอบของผู้ใช้ notepadpp studend คือ AFAICT นอกหัวข้อ
ctusch

1

วิธีที่ดีที่สุดคือการตั้งค่า Notepad ++ ให้ทำงานในฐานะผู้ดูแลระบบ ปัญหาที่เกิดขึ้นกับตัวเลือกนั้นคือคลิกขวา ดังนั้นฉันจึงเปลี่ยนเป็นตัวเลือกคลิกขวาที่ลบอันเก่าออก ส่วนที่ดีของการแก้ไขของฉันคือฉันเพิ่มลงในการตั้งค่าไดเรกทอรีในรีจิสทรี ดังนั้นตอนนี้คุณสามารถคลิกขวาที่โฟลเดอร์และเลือกแก้ไขด้วย Notepad ++ และมันจะเปิดไฟล์ทั้งหมดใน Notepad ++ :) ฉันเขียนโปรแกรม VBScript เป็นจำนวนมาก ทำให้ฉันสามารถแก้ไขไฟล์ทั้งหมดของฉันได้อย่างง่ายดายโดยทำการเปลี่ยนแปลงทั่วโลกเมื่อฉันคิดวิธีใหม่ในการทำบางสิ่งหรือเปลี่ยนวัตถุ

VBScript ของฉันสำรองคีย์รีจิสทรีก่อนที่จะเปลี่ยนแปลง มันไม่ได้ตั้งค่า Notepad ++ ในฐานะผู้ดูแลระบบดังนั้นคุณต้องทำอย่างนั้นโดยการคลิกขวาบนไฟล์ Notepad ++ ที่สามารถเรียกใช้งานได้และเปลี่ยนมันให้ทำงานในฐานะผู้ดูแลระบบ ฉันเริ่มค้นคว้าเกี่ยวกับวิธีทำให้ Run เป็นผู้ดูแลระบบ เมื่อฉันคิดว่าฉันจะแก้ไขโพสต์ของฉันเพื่อให้คุณมีตัวเลือกในการแก้ไขเป็นผู้ดูแลระบบหรือแก้ไขตามปกติ

'==========================================================================================
' NAME:   New-OpenWithNotepad++(WinVista7).vbs
' EDITED:  Kevin Dondrea , Gordos-Dondrea Enterprises and Foundation
' DATE  : 8/12/2012
' COMMENT: This script Exports Registry keys and replaced Notepad++ Right Click options.
'   Works with Windows Vista and 7.  Also works for restricted Win XP accounts.
' WEB LINK:  
'==========================================================================================

Option Explicit

' =============== START ADD ADMIN RIGHTS ===============
' This adds the Admin Run Function for Windows Vista and 7
' You must put this at the top below computer and End If at the
' very end of the script
If WScript.Arguments.length = 0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "WScript.exe", """" & _
WScript.ScriptFullName & """" &_
" RunAsAdministrator", , "runas", 1
Else
' Do not forget to add End If at the end of the script
' =============== END ADD ADMIN RIGHTS ===============

On Error Resume Next

' =============== START CONSTANT VARIABLES ===============
Const HKEY_CLASSES_ROOT   = &H80000000
Const HKEY_CURRENT_USER   = &H80000001
Const HKEY_LOCAL_MACHINE  = &H80000002
Const HKEY_USERS          = &H80000003
' =============== END CONSTANT VARIABLES ===============

' =============== START DIM VARIABLES ===============
Dim objFSO, objWrite2File, objShell, objReg, objRegistry, objWshShell
Dim strDate, strTime, strTime2, strFileName, strOpenFile
Dim strComputer, strCommand, strHostName, strUserName
Dim intRC, strKeyPath, strValueName, strValue
' =============== END DIM VARIABLES ===============

' --------------------------------------------------------------------------

' =============== START COMPUTER NAME, TIME and DATE ===============
strComputer = "."

' Reads registry for Computer Name
Set objShell = CreateObject("WScript.Shell")
' Edit or Add with Registrry Object
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
strComputer & "\root\default:StdRegProv")

' Same as above but used only to delete registry key
Set objRegistry=GetObject("winmgmts:\\" & _ 
strComputer & "\root\default:StdRegProv")

strHostName = objShell.RegRead ("HKLM\SYSTEM\CurrentControlSet\Services\" & _
        "Tcpip\Parameters\Hostname")
strUserName = objShell.RegRead ("HKLM\SOFTWARE\Microsoft\Windows NT\" & _
        "CurrentVersion\Winlogon\DefaultUserName")

' Retreives Date and Time
strTime = Right("0" & Hour(now()), 2) & Right("00" & _ 
    Minute(Now()), 2) & Second(Now())
strTime2 = Right("0" & Hour(now()), 2) & ":" & Right("00" & ":" & _ 
    Minute(Now()), 2) & ":" & Second(Now())
strDate = Right("0" & Month(now()), 2) & "-" & Right("00" & _ 
    Day(Now()), 2) & "-" & Year(Now())
' -----------------------------------------------------------

' =============== START BACKUP OF REGISTRY KEYS USED FOR ===============

' Original Command
' strCommand = "regedit /e <FilePath> <RegKey>"

' Local Machine ......
strCommand = "regedit /e " & strHostName & "-" & strDate & "-" & _ 
strTime & "-BackupLM-Notepad++.reg " & _ 
"""HKEY_LOCAL_MACHINE\SOFTWARE\Classes" & _ 
"\CLSID\{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}"""

Set objWshShell = WScript.CreateObject("WScript.Shell")
intRC = objWshShell.Run(strCommand, 0, TRUE)
If intRC <> 0 then
 WScript.Echo "Error returned from exporting Registry: " & intRC
Else
 WScript.Echo "No errors returned from exporting the Registry file"
End If
' =============== END BACKUP OF REGISTRY KEYS USED FOR ===============

' -----------------------------------------------------------

' =============== START NEW OPEN * SHELL COMMAND ===============
' Name of Registry Entry Key\Path
strKeyPath = "*\shell\Edit With Notepad++\command"
objReg.CreateKey HKEY_CLASSES_ROOT,strKeyPath

' Name of Registry Entry String
strValueName = ""
strValue = "C:\progra~1\notepad++\notepad++.exe %1"
objReg.SetStringValue HKEY_CLASSES_ROOT,strKeyPath,NULL,strValue

' =============== START NEW OPEN DIRECTORY SHELL COMMAND ===============
' Name of Registry Entry Key\Path
strKeyPath = "Directory\shell\Edit With Notepad++\command"
objReg.CreateKey HKEY_CLASSES_ROOT,strKeyPath

' Name of Registry Entry String
strValueName = ""
strValue = "C:\progra~1\notepad++\notepad++.exe %1"
objReg.SetStringValue HKEY_CLASSES_ROOT,strKeyPath,NULL,strValue

' -----------------------------------------------------------

strKeyPath = "*\shellex\ContextMenuHandlers\ANotepad++"
objRegistry.DeleteKey HKEY_CLASSES_ROOT,strKeyPath

strKeyPath = "SOFTWARE\Classes\CLSID\{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}\Settings"
objRegistry.DeleteKey HKEY_LOCAL_MACHINE,strKeyPath

' Ending Message
MsgBox"Notepad++ Right-Click Settings" & VbCrLf & _
"Have Been Created", ,"Click OK To Close Window"

' Cleans up Variables From Memory
Set objFSO = Nothing
Set objWrite2File = Nothing
Set objShell = Nothing
Set objReg = Nothing
Set objRegistry = Nothing
Set objWshShell = Nothing
Set strDate = Nothing
Set strTime = Nothing
Set strTime2 = Nothing
Set strFileName = Nothing
Set strOpenFile = Nothing
Set strComputer = Nothing
Set strCommand = Nothing
Set strHostName = Nothing
Set strUserName = Nothing
Set intRC = Nothing
Set strKeyPath = Nothing
Set strValueName = Nothing
Set strValue = Nothing

End If


0

อีกวิธีคือเปิด "Start Menu" ค้นหาแอพพลิเคชั่น Notepad และคลิกขวา จากนั้นคลิกที่ "Run as Administrator"

ขณะนี้คุณสามารถเรียกดูระบบไฟล์ (ผ่าน "Notepad / ไฟล์ / เปิด ... ") สำหรับไฟล์ที่คุณต้องการแก้ไข


0

เป็นวิธีที่ง่ายและมีประสิทธิภาพ:

  1. สร้างทางลัดบนเดสก์ท็อป (c: \ program files \ notepad ++ \ notpad ++. exe -> คลิกขวา -> sendto -> เดสก์ท็อป)
  2. สร้างสำเนาของทางลัดนั้นและเพิ่ม _ADMIN ลงในทางลัด
  3. คลิกขวาที่ _ADMIN ทางลัด - คุณสมบัติ - ทางลัด - ปุ่มขั้นสูง - ทำเครื่องหมาย "เรียกใช้ในฐานะผู้ดูแลระบบ"
  4. เปิดไฟล์ explorer และพิมพ์ "shell: sendto"
  5. ลากและวางทั้งสองทางลัดไปยังโฟลเดอร์ที่เปิด

ตอนนี้คุณมีทั้ง notepad ++ และ notepad ++ _ ADMIN ในรายการ "SendTo" ของคุณสำหรับไฟล์ใด ๆ

เชลล์บริบท

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.