• 生活就是这样,需要去灌溉!
    • 谢谢您的关注,欢迎您的注册与写作!
    • 循环往复,生生不息,或许这就是生命的意义吧!生命是插曲的产品吧!
    • 古今多少事,都付笑言中!
    • 风住尘香花已尽,日晚倦梳头。物是人非事事休,欲语泪先流。
    • 闻说双溪春尚好,也拟泛轻舟,只恐双溪舴艋舟,载不动许多愁。

bat命令之windows服务器账号巡检

Windows 柳叶扉鸿 来源:51cto博客--hiubuntu 7年前 (2018-05-02) 961次浏览 已收录 扫描二维码
内容目录

BAT 这种古老的语言,虽然很简单,可以在实际利用中却真的很麻烦。。
需求:使用 bat 脚本定期巡检大批量 windows 服务器上的每个账号的信息。
思路:Step 1:使用 net user 命令
S2:使用 for 循环嵌套 net user 输出结果
S3:目录名以日期加 IP 的形式命名
S4:使用 at 命令建立计划任务,其实 schtasks 更优,还在研究中
S5:使用 net use 网络共享驱动器,将输出结果 copy 集中网络一个位置
S6: 使用 landesk 推送脚本
解决方案:
1、net user 用户名 >>特定输出文件
2、for /f ” tokens= delims= ” %%i in (文件) do net user %%i >> 特定输出文件
3、获取日期
set a=%date:\=-% rem 避免\显示与目录名冲突
获取 IP
for /f “tokens=2 delims=:” %%i in (‘ipconfig^|find /i “IPv4 “‘) do echo “%%i” |findstr 10 && set b=%%i && goto LABEL
rem 获取正确 IP 后跳转出 for 循环
注:使用 find /i 在 2008 中可以,但是 03 要用 findstr “IP”
4、at 1:00 /every:15 start \~lujing\userchk.bat rem 计划任务
5、网络共享,
net use q: \\IP\UserCHK\FFP passwd/user:superadmin
copy E:\userchk\文件.txt q:\
6、网络共享的方式比较难看
补充 windows 下 ftp 自动上传的脚本
echo open $IP>>http://ftp.tmp
echo $username>>http://ftp.tmp
echo $passwd>>http://ftp.tmp
echo prompt off>>http://ftp.tmp
echo lcd $userchk>>http://ftp.tmp
echo put filename>>http://ftp.tmp
echo bye>>http://ftp.tmp
REM ftp -s 参数后面加需要运行的文本,-i 为多文件传输是非交互式。
ftp -i -s:ftp.tmp
REM 删除临时文件
del http://ftp.tmp

虽然看起来很简单,但是涉及到动态变量赋值,动态变量取值,以及 if 语句,for 循环多重取值结构,字符截断及替换,管道传递及逻辑判断。
基本上掌握了这些批处理可以算基本入门了,有时间再详解这些命令使用。。
源代码:

if not exist E:\userchk mkdir E:userchk
if not exist E:\userchk\usercheck.bat copy %~dp0usercheck.bat E:\userchk
at |findstr "usercheck" || at 1:00 /every:15 start e:\usrchk\usercheck.bat
set b=%date:~0,10%
set b=%b:/=-%
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find /i "IPv4 "') do echo "%%i" |findstr 10 && set a=%%i && goto start || set a=no
:start
set a=%a: =%
set c=%b%-%a%
set "c=%c: =%"
set n=0
net user >>E:\userchk\"%c%-%computername%.txt"
for /f "skip=4 tokens=1,2,3 delims= " %%i in ( E:\userchk\%c%-%computername%.txt ) do   net user %%i && net user %%i >>E:\userchk\%c%-
%computername%.txt & net user %%j >>E:\userchk\%c%-%computername%.txt & net user %%k >>E:\userchk\%c%-%computername%.txt & set /a
n=1+!n!
echo user'Num is !n!
net use q: \\10.101.22.*\UserCHK\FFP  passwd/user:superadmin
copy E:\userchk\%c%-%computername%.txt q:\

柳叶扉鸿 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明bat命令之windows服务器账号巡检
相关文章 相关文章 相关文章
喜欢 (1)