这更像是一个宠物项目,因为我喜欢在不使用第三方应用程序的情况下尽量批量编写脚本。我明白这样会更容易,但我想试试这个就好了。我理解基本问题可能就是shell执行explorer的方式,因为我知道它不打算像这样运行。
我有一个标准用户帐户和一个批处理脚本:
@echo OFF
FOR /F "usebackq" %%i IN (`hostname`) DO SET COMPNAME=%%i
ECHO Computer %COMPNAME%
TASKKILL /F /IM explorer.exe
runas /user:"%COMPNAME%"\ADMIN "C:\Windows\System32\cmd.exe"
Echo.
Echo Press Enter once you are finished
Pause
TASKKILL /F /IM explorer.exe
explorer.exe
Exit
基本上每台计算机的名称都是计算机的主机名,因此我创建了一个变量来处理它。然后我让它杀死资源管理器,然后运行CMD作为管理员帐户。 (我也可以用资源管理器替换它。)然后当CMD打开时我键入explorer.exe并打开具有完全访问权限的管理员帐户。脚本运行正常,脚本没有问题。但就环境而言,我遇到了两个问题。
Windows 7一切正常,我打开的每个程序都是ADMIN,甚至开始菜单右上角的开始菜单用户配置文件标题都说ADMIN,直到我打开管理工具,然后我打开的每个应用程序使用标准用户,例如计算机管理。我假设资源管理器处理本地用户环境的命令,这就是原因。我知道我可以使用compmgmt作为管理员来解决这个问题,但我想知道资源管理器交换的具体原因,它是否就像shell使用本地环境一样简单,那就是它的原因?
在Windows 10上,脚本处理成功,但资源管理器运行速度极慢。每个其他程序运行正常,cmd,compmgmt,regedit,Firefox等...但资源管理器很慢,我说5分钟打开收藏夹窗口,开始菜单根本无法打开。我检查了进程资源管理器,除了标准的获取分辨率和其他图形句柄外,没有任何内容可以解决。我认为这可能只是壳牌的运作方式。
无论如何,我知道这并不理想,并且有更容易的方法,并且Explorer.exe从未打算像这样运行。我只想尝试自己的个人创造力。任何帮助将不胜感激。
谢谢,