找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 11526|回复: 0

[问题求助] 求助vbs脚本,实现用户回家后还能记录登录和注销的信息在本地

[复制链接]
发表于 2022-2-16 14:22:20 | 显示全部楼层 |阅读模式
下面这个脚本可以实现内网中用户登录和注销信息的收集,自动上传到远程服务器共享文件夹,
但是用户离开公司脱离域控环境后,就不能收集信息了,请各位大神帮加个判断,
如果用户不在内网环境比如:ping 不通远程服务器ip,就自动保存在本地文件夹,
可以ping通就上传到远程服务器共享文件夹。


On Error Resume Next
strComputerlyrj = "."
Set lianjieobjlinyangrj = GetObject("winmgmts:\\" & strComputerlyrj & "\root\cimv2")
Set colItemslinyangrj = lianjieobjlinyangrj.ExecQuery("Select * from Win32_ComputerSystem")
For Each objItemlyrj in colItemslinyangrj
   getcomputerstr = objItemlyrj.name
   getcomputerdomainstr = objItemlyrj.Domain
   getusernamestr = objItemlyrj.UserName
   getmodelstr = objItemlyrj.Model & "(" & objItemlyrj.Manufacturer & ")"
next
Set colItemslinyangrj = nothing

Set ercolItemslinyangrj = lianjieobjlinyangrj.ExecQuery("Select * from Win32_OperatingSystem")
For Each erobjItemlyrj in ercolItemslinyangrj
   getosnamestr = erobjItemlyrj.Caption
   getoslastbootuptimestr = erobjItemlyrj.LastBootUpTime
next
Set ercolItemslinyangrj = nothing
Set lianjieobjlinyangrj = nothing



If getusernamestr <> "" Then
Else
   Set SetobjNetlinyangrj = CreateObject("WScript.Network")
   getusernamestr = SetobjNetlinyangrj.UserName
   Set SetobjNetlinyangrj = nothing
End If

filenamestr = split(getusernamestr,"\")(ubound(split(getusernamestr,"\")))
getdatetimestr = replace(date(),"/","-") & " " & time()

存放文件的路径
pathstr = "\\192.168.118.128\shoujifile$\" & filenamestr & ".csv"

Set ofsolinyangrj = CreateObject("Scripting.FileSystemObject")
If ofsolinyangrj.fileExists(pathstr) Then
   Set Outputlinyangrj = ofsolinyangrj.OpenTextFile(pathstr,8,True)
   Outputlinyangrj.WriteLine """"& getcomputerstr &""","""& getcomputerdomainstr &""","""& getusernamestr &""","""& getdatetimestr &""",""登录"","""& getmodelstr &""","""& getosnamestr &""","""& getoslastbootuptimestr &""""
   Outputlinyangrj.close()
   Set Outputlinyangrj = nothing
else

   Set Outputlinyangrj = ofsolinyangrj.CreateTextFile(pathstr, True)
   Outputlinyangrj.WriteLine """计算机名称"",""登录域"",""登录名称"",""时间"",""类型"",""计算机型号"",""操作系统名称"",""最近一次开机时间"""
   Outputlinyangrj.WriteLine """"& getcomputerstr &""","""& getcomputerdomainstr &""","""& getusernamestr &""","""& getdatetimestr &""",""登录"","""& getmodelstr &""","""& getosnamestr &""","""& getoslastbootuptimestr &""""
   Outputlinyangrj.close()
   Set Outputlinyangrj = nothing
end if
Set ofsolinyangrj = nothing
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 20:41 , Processed in 0.016017 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表