需要使用vbscript获取windows服务器上登录信息的帮助吗
我需要获得过去n天内所有通过RDP登录到我的服务器的人的信息。我在一个网站上找到了一个脚本,并根据我的要求对其进行了修改。我可以遍历多个服务器,获取子文件夹并将结果写入文本文件。唯一的问题是我无法应用日期筛选器,我想列出文件夹C:\Users下特定日期范围的子文件夹。我只是vbscript的业余爱好者,这里有人能帮我吗,以下是脚本:需要使用vbscript获取windows服务器上登录信息的帮助吗,vbscript,Vbscript,我需要获得过去n天内所有通过RDP登录到我的服务器的人的信息。我在一个网站上找到了一个脚本,并根据我的要求对其进行了修改。我可以遍历多个服务器,获取子文件夹并将结果写入文本文件。唯一的问题是我无法应用日期筛选器,我想列出文件夹C:\Users下特定日期范围的子文件夹。我只是vbscript的业余爱好者,这里有人能帮我吗,以下是脚本: Dim comparray(1) Dim Item, objWMIService, colSubfolders, objFolder Set objFSO=Cre
Dim comparray(1)
Dim Item, objWMIService, colSubfolders, objFolder
Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile="MyPath\Results.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
comparray(0)= "Server1"
comparray(1)= "Server2"
For Each Item in comparray
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & Item & "\root\cimv2")
Set colSubfolders = objWMIService.ExecQuery _
("Associators of {Win32_Directory.Name='c:\users'} " _
& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent")
For Each objFolder in colSubfolders
'Wscript.Echo objFolder.Name & Item
objFile.WriteLine objFolder.Name & ":" & Item
Next
Next
我正在尝试另一个脚本,但是使用这个脚本,我无法遍历服务器,它只给我一个服务器的结果,尽管我已经提到了两个服务器。我无法确定应该将服务器阵列的块放在哪里,下面是第二个脚本:
Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile="MyPath\Results.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
showfolderlist "C:\Users"
Sub ShowFolderList(folderspec)
Dim Item, fs, f, f1, fc, s, t
Dim comparray(1)
comparray(0)= "server1"
comparray(1)= "server2"
For Each Item in comparray
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set fc = f.SubFolders
t = (DateAdd("d",-1,"03-25-2020"))
For Each f1 in fc
If f1.datelastmodified > t Then
s = s & f1.name & " - " & f1.datelastmodified
s = s & vbCrLf
objFile.WriteLine Item & ":" & vbCrLf & s
End If
Next
Next
End Sub
最后,我能够使用Win32_目录类的LastModified属性,并且能够找到具有特定日期范围的文件夹
If objFolder.LastModified > "20200319101621.666501-240" Then
'Wscript.Echo objFolder.Name & Item
objFile.WriteLine Item & "|" & objFolder.Name & "|" & WMIDateStringToDate(objFolder.LastModified)
End If
您的代码有几个问题。其中一个没有用
Next
关闭外部For
循环。谢谢,我用Next关闭了For循环,请您就实际问题提出建议。最后一行有一个打字错误和语法错误。向DateAdd
传递日期必须采用DateAdd
可以理解的格式(取决于区域设置),最好使用数字而不是“Mar”。定义数组但不使用其值。不能在条件语句、循环语句等代码块内定义函数。这将导致语法错误。