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