繁体   English   中英

如何以管理员身份运行批处理脚本中的某些行,而以用户身份运行其他行?

[英]How do I run some lines in a batch script as admin but others as user?

我有这个小脚本来重新启动 OneDrive 以解决发生的问题。 我想以管理员身份运行它,以确保它具有执行其工作的权限,但 OneDrive 无法以管理员身份启动。 我可以启动 sript 广告管理员,但以普通用户身份启动 OneDrive? 继承人的sript:

taskkill /IM onedrive.exe /F
sc stop OneSyncSvc_4a414
sc stop FileSyncHelper
timeout /t 2 /nobreak >nul
sc start OneSyncSvc_4a414
sc start FileSyncHelper
cd C:\Program Files\Microsoft OneDrive
OneDrive.exe
exit

一个过程是否被提升,你不能来回走动。 批处理文件由 cmd.exe 进程执行。

您必须提升批处理文件以执行某些任务,然后是原始上下文/流程中的非提升任务:

@echo off
if "%1"=="admin" goto admin
rem start yourself elevated here with admin as a parameter
timeout ...
start onedrive.exe
@goto :EOF

:admin
sc ...

在您的特定情况下,您应该尝试修复 OneDrive 而不是解决问题。 或者,更改服务的安全性,以便普通用户可以启动/停止它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM