ไฟล์แบตช์จะไม่ทำงานในฐานะผู้ดูแลระบบเว้นแต่จะแจ้งผ่าน cmd


3

ฉันพยายามเขียนไฟล์แบตช์ที่จะปิด Apache และคัดลอกไฟล์บางไฟล์ นี่คือทั้งหมดที่ฉันมีในสคริปต์ในขณะนี้:

"C:\Apache24\bin\httpd.exe" -k stop

หากฉันเรียกใช้ไฟล์แบตช์ตามปกติหรือคลิกขวาและเลือก "เรียกใช้ในฐานะผู้ดูแลระบบ" หน้าต่างคอนโซลจะกระพริบขึ้นและฉันจะเห็นข้อความสั้น ๆ ว่า "การเข้าถึงถูกปฏิเสธ"

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

ฉันใช้ Windows 7 Pro btw


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

ดูเหมือนว่าคุณได้เปลี่ยนการเชื่อมโยงของ. bat ส่วนขยายหรือคุณมีมัลแวร์ / ไวรัสในเครื่องของคุณ คุณสามารถตรวจสอบได้หรือไม่ว่าทำไมค่าเริ่มต้นเป็น. BAT ภายใต้ HKEY_CLASSES_ROOT ฉันเปลี่ยนของฉันโดยไม่ตั้งใจครั้งเดียวเพื่อให้ฉันแก้ไขอยู่เสมอถ้าฉันคลิกสองครั้งที่แบตช์ไฟล์และมือเพื่อทำงานด้วยตนเองผ่านทางพรอมต์คำสั่งจนกระทั่งฉันแก้ไขรีจิสทรีของฉัน
netniV

คำตอบ:


0

ตามความคิดเห็นของฉันข้างต้นหากคุณมี messed กับสมาคมสตรีของคุณสำรองรีจิสทรีของคุณแล้วบันทึกต่อไปนี้เป็น. reg และนำไปใช้เพื่อรีเซ็ตเป็นค่าเริ่มต้น W7 สำหรับ. BAT:

Windows Registry Editor เวอร์ชัน 5.00

[HKEY_CLASSES_ROOT\.bat]
@="batfile"

[HKEY_CLASSES_ROOT\.bat\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\batfile]
@="Windows Batch File"
"EditFlags"=hex:30,04,00,00
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
  00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
  32,00,5c,00,61,00,63,00,70,00,70,00,61,00,67,00,65,00,2e,00,64,00,6c,00,6c,\
  00,2c,00,2d,00,36,00,30,00,30,00,32,00,00,00

[HKEY_CLASSES_ROOT\batfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,6d,00,\
  61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,36,\
  00,38,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell]

[HKEY_CLASSES_ROOT\batfile\shell\edit]

[HKEY_CLASSES_ROOT\batfile\shell\edit\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\
  00

[HKEY_CLASSES_ROOT\batfile\shell\open]
"EditFlags"=hex:00,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\batfile\shell\print]

[HKEY_CLASSES_ROOT\batfile\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
  54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,2f,00,70,00,20,\
  00,25,00,31,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell\runas]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\batfile\shell\runas\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6d,00,\
  64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,43,00,20,00,22,00,25,00,31,00,22,\
  00,20,00,25,00,2a,00,00,00

[HKEY_CLASSES_ROOT\batfile\shell\runasuser]
@="@shell32.dll,-50944"
"Extended"=""
"SuppressionPolicyEx"="{F211AA05-D4DF-4370-A2A0-9F19C09756A7}"

[HKEY_CLASSES_ROOT\batfile\shell\runasuser\command]
"DelegateExecute"="{ea72d00e-4960-42fa-ba92-7792a7944c1d}"

[HKEY_CLASSES_ROOT\batfile\ShellEx]

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers]
@="Compatibility"

[HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\Compatibility]
@="{1d27f844-3a1f-4410-85ac-14651078412d}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers]

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers\PifProps]
@="{86F19A00-42A0-1069-A2E9-08002B30309D}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\PropertySheetHandlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"

[HKEY_CLASSES_ROOT\batfile\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}]
@="{1531d583-8375-4d3f-b5fb-d23bbd169f22}"

0

ลองสิ่งนี้มันจะถามพร้อมต์ UAC และเรียกใช้คำสั่งในฐานะผู้ดูแลระบบ

:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------
:: ADD COMMANDS TO BE RUN AS ADMIN BELOW.

"C:\Apache24\bin\httpd.exe" -k stop

โปรดอ้างอิงส่วนสำคัญของคำตอบจากลิงก์อ้างอิงเนื่องจากคำตอบอาจไม่ถูกต้องหากหน้าเชื่อมโยงมีการเปลี่ยนแปลง
DavidPostill

พยายามแล้ว แต่แท็กรหัสเกิดความผิดพลาด เมื่อฉันใส่เนื้อหาของสคริปต์ลงในแท็กรหัสเนื้อหาทั้งหมดจะไม่ดูตามที่ต้องการ ..
Bharat G

แก้ไขที่สำหรับคุณ คุณควรเรียนรู้วิธีใช้ มาร์กอัป .
DavidPostill

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

ขอบคุณ. แน่นอนฉันไม่ได้เป็นผู้เขียน ฉันพบว่าสคริปต์ใช้เวลานานและลืมที่มา ฉันใช้มันเป็นประจำ มันใกล้กับนี้ (แต่ไม่เหมือนกัน) stackoverflow.com/a/25238418 . หนึ่งฉันพบว่ามีจนถึงบรรทัด :: เพิ่มคำสั่งเพื่อเรียกใช้เป็นผู้ดูแลด้านล่าง อย่างไรก็ตามมันยากที่จะหามันตอนนี้เนื่องจากมันมีการเปลี่ยนแปลง
Bharat G

0

คุณเคยลองไหม

runas /noprofile /user:mymachine\administrator cmd

มันอยู่ภายใต้ (การใช้ runas: ตัวอย่าง) ดังนั้นจึงควรใช้งานได้

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