win通过cmd命令行实现用户切换

请教个问题,在 win10里runas /user:operator cmd后只是拉起了一个operator运行了命令行,如何拉起operator用户的桌面,实现完全切换用户,感谢!
可以理解为写一个 一键切换用户.bat

参考GPT:要切换到用户的桌面,可以使用Windows提供的 "tscon" 命令。 "tscon" 命令可用于连接到已登录到计算机上的会话。通过连接到用户会话,您可以访问其桌面。

下面是一键切换用户的示例批处理文件(.bat文件):

@echo off
rem Replace "username" with the name of the user you want to switch to.
set username=username

rem Find the session ID of the user you want to switch to.
for /f "tokens=3" %%s in ('query user ^| findstr /r /c:"%username%"') do set sessionid=%%s

rem Connect to the user's session.
tscon %sessionid%


在这个脚本中,您需要将 "username" 替换为您要切换到的用户的名称。脚本使用 "query user" 命令查找与用户名匹配的会话ID,然后使用 "tscon" 命令连接到该会话。要运行此脚本,您需要以管理员身份运行命令提示符窗口。

参考如下

::批处理实现win7一键切换用户

::以下代码可自动触发win7 “uac”,既可自动判断当前用户是否为管理员运行,如果不是会

::弹出“是否以管理员身份运行”窗口!防止已开启“uac”的用户,解决无权限问题!

::同时也免去右键“以管理员身份运行”此操作!

@pushd "%temp%"

@echo.>%systemroot%\tektea.uac

@if exist %systemroot%\flyfish.uac goto startwithadmin

@echo set uac = createobject^("shell.application"^)>fadm.vbs

@echo uac.shellexecute "%~0", "%*", "", "runas", 1 >>fadm.vbs

@fadm.vbs

@goto :eof

:startwithadmin

@del %systemroot%\tektea.uac

@if exist fadm.vbs del fadm.vbs

@pushd "%~dp0"

::启用windows “secondary logon” (二次登录)服务,有的系统防护软件可能禁用了此服务!

sc config seclogon start= auto

net start seclogon

::结束当前桌面程序

taskkill /im explorer.exe /f

::使用runas指定要切换的用户并启动到该用户桌面,如果要切换的账户未登录,首次此处会提示输入要切换用户的密码!

runas /savecred /profile /user:administrator %systemroot%\explorer.exe

::ping本地5次,实现延时查看是否已“禁用空密码登录”(如果未成功切换!)

https://jiuaidu.com/jianzhan/909366/

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7741685
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:windows系统 bat文件执行时cmd窗口汉字乱码解决
  • 除此之外, 这篇博客: Windows cmd命令提示符重启网卡(网络适配器)中的 4.使用bat批处理(可选) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    如果需要经常重启这张网卡的话,可以保存到bat批处理文件中去,不用再反复的敲命令行了,解放双手更方便。复制我的代码,将VMware Network Adapter VMnet8替换为你要重启的网卡名称即可。

    代码如下:

    @echo off
    echo.
    echo 正在重启网卡VMnet8
    netsh interface set interface "VMware Network Adapter VMnet8" disable
    echo 网卡已关闭
    netsh interface set interface "VMware Network Adapter VMnet8" enabled
    echo 网卡重启成功
    pause

    以管理员的身份运行bat程序

     大功告成!!!

    补充:更懒的人还可以将bat程序设置开机自启等,比如:

    将其添加到开机自启文件夹,参考链接:

    window10设置开机后自启动.bat文件

    将其添加到任务计划中去,参考链接:Windows通过计划任务定时执行bat文件


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^