选择网络共享上的批处理文件后立即关闭'Run as administrator'



简介:在网络共享中创建一个.bat文件,简单地将pause放入其中,然后保存。右键单击新建文件&'以管理员身份运行'它立即关闭,为什么?

将文件移动到本地PC (%SYSTEMDRIVE%),它将正常工作。所以这显然是UNC路径的问题?我该如何修复?我试着把pushd "%~dp0"作为第一线,但同样的即时关闭问题。如果你想知道我在做什么,这里有一个片段:

echo ------MADE BY ME-----
REM install from batch file location, a network UNC path
msiexec /i "%~dp0AppNameHere.msi" /qn /norestart /log %TEMP%AppNameHere.log
echo Instructions > %PUBLIC%DesktopHowToUseApp.txt

如果我双击批处理,它失败,拒绝访问。右键单击批处理文件&'以管理员身份运行'导致它打开&很快就会消失。如果我以admin身份打开cmd,然后运行批处理,它可以正常工作。我对原因感到困惑。如果我新建一个批处理文件

启用UAC时,提升的进程没有访问网络共享的权限。这是故意的。

请注意,链接文章中EnableLinkedConnections注册表更改的解决方案具有未知的安全后果。从历史上看,即使微软也说你应该避免使用它,尽管今天相同的KB文章要温和得多。

因此,cmd.exe在一个提升的进程中启动,试图访问网络驱动器,以便它可以读取批处理文件,找不到驱动器,因为它没有映射到LocalSystemAdministrator,并退出。

这是另一个问题,有更多可能的解决方法。

最新更新