公司办公场地分别在两个不同的楼层,处理问题要来回跑,所以思考使用远程访问的方式解决问题。同事大多对电脑不熟悉,使用「通讯软件」和「电话」教同事开启远程桌面沟通成本挺高,另外公司IP地址、账号密码都没统一管理,使用远程桌面的前提:①开启远程 ②获取IP地址 ③获取用户名密码。经过一番思考,发现使用批处理解决这些问题并不复杂。
当同事遇到问题时:我通过「通讯软件」将脚本发送给同事 > 同事执行 > 我使用远程桌面操作。
脚本先开启远程桌面服务、关闭防火墙,接下来获取当前用户名、让用户输入密码、获取IP,这些信息保存到临时文件;再将临时文件复制到我电脑上的共享文件夹(everyone要有读写权限),我查看用户信息文件“用户名.txt”后,即可进行远程。
@echo off color 1F title 请求远程协助脚本 set name=%username% set filename=%name%.txt :home cls echo. echo 请右击「以管理员身份运行」 echo. echo. echo 1、开启远程协助 echo. echo 2、关闭远程协助 echo. echo 0、退出 echo. echo. set /p num=请输入: if %num%==1 goto 1 if %num%==2 goto 2 if %num%==0 goto 0 :1 cls echo. echo ================================================ echo. net start SessionEnv net start TermService ::开启远程桌面 netsh firewall set opmode mode = disable>%temp% esult.tmp if %errorlevel%==0 (echo 已关闭防火墙。) else (echo 关闭防火墙失败。) echo. ::关闭防火墙 REG ADD "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f ::配置注册表,开启选项 echo. echo ================================================ echo. echo. set /p pass=请输入电脑密码: echo 账号:%username% >%temp%\%filename% echo 密码:%pass% >>%temp%\%filename% ipconfig | findstr "192.168.1" >%temp%ip.tmp set /p a=<%temp%ip.tmp echo IP:%a:~-14% >>%temp%\%filename% ::截取IP地址
echo. copy %temp%\%filename% \192.168.1.200Sharehelp ::复制电脑信息到共享 echo. if %errorlevel%==0 (echo 管理员已收到信息,等待处理。) else (echo 发送信息失败。) del %temp%ip.tmp && del %temp% esult.tmp ::删除临时文件 echo. pause&exit :2 cls echo. echo 开始配置... echo. sc config MpsSvc start= auto sc config SessionEnv start= demand sc config TermService start= demand ::设置开机服务 netsh firewall set opmode mode = enable>%temp% esult.tmp if %errorlevel%==0 (echo 已开启防火墙。) else (echo 开启防火墙失败。) del %temp% esult.tmp ::开启防火墙 REG ADD "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f ::配置注册表,关闭选项 echo. pause&exit :0 exit
效果如下:
本文出自 “运维菜鸟.log” 博客,谢绝转载!