Войти

Показать полную графическую версию : Увеличить высоту окна вывода скрипта либо добавить вывод в файл


boot-a
09-04-2025, 15:16
Есть скрипт, который выводит список пользователей Windows и их последнюю дату входа:
Option Explicit
Dim objWMIService, colItems, WshNetwork, strComputer
Dim objUser, objItem, dtmLastLogin, strLogonInfo
Set WshNetwork = CreateObject("Wscript.Network")
strComputer = WshNetwork.ComputerName

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_UserAccount Where Domain = '" & strComputer & "'")

For Each objItem in colItems
dtmLastLogin = ""
On Error Resume Next
Set objUser = GetObject("WinNT://" & strComputer _
& "/" & objItem.Name & ",user")
dtmLastLogin = objUser.lastLogin
On Error Goto 0

strLogonInfo = strLogonInfo & vbCrLf & objItem.Name & ": " & dtmLastLogin
Next
MsgBox strLogonInfo, vbOKOnly + vbInformation, "Информация о последнем входе в систему"

Но беда в том, что собирает он максимум 34 пользователя и на 35м вывод в окно обрывается. Может кто поможет увеличить высоту окна (добавить проматывание по высоте), а в идеале заставить его выводить данные в текстовый файл?

DJ Mogarych
09-04-2025, 15:30
Powershell, вывод в файл

Get-LocalUser |select name,lastlogon > c:\temp\$env:computername-lastlogon.txt

Sham
09-04-2025, 15:48
проще заменить строку с msgbox .... на WScript.Echo strLogonInfo и куда угодно: cscript //nologo users.vbs >file.txt

megaloman
10-04-2025, 16:42
strLogonInfo = strLogonInfo & vbCrLf & objItem.Name & ": " & vbTab & dtmLastLogin
Next

''''MsgBox strLogonInfo, vbOKOnly + vbInformation, "Информация о последнем входе в систему"

Dim View: View = "notepad.exe"
With CreateObject("Scripting.FileSystemObject")
Dim Out: Out = .GetSpecialFolder(2).Path + "\~~~vbs.tmp"
With .OpenTextFile(Out, 2, True)
.Write "Информация о последнем входе в систему" & vbCrLf & strLogonInfo
.Close
End With
CreateObject("WScript.Shell").Run """" & View & """ " + Out, 1, True 'False
If .FileExists(Out) Then .DeleteFile Out, True
End With




© OSzone.net 2001-2012