1

Тема: VBScript: получение списка открытых файлов на файл-сервере

Скрипт выводит список открытых по сети файлов на файл-сервере и имена пользователей домена, открывших эти файлы.

ServerName = "ComputerName"
'==============================================================================
On Error Resume Next
Set FileService = GetObject("WinNT://" & ServerName & "/LanmanServer")
For Each Res In FileService.Resources
    WScript.Echo Res.Get("User") & " " & Res.Get("Path")
    WScript.Echo
Next

В качестве ServerName можно использовать "." (текущий компьютер).

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: VBScript: получение списка открытых файлов на файл-сервере

Запись информации об открытых файлах и сессиях на сервере в базу данных FireBird. Скрипт запускается на сервере, обновление информации происходит каждые 10 секунд. Для функционирования, естественно, надо поставить сам сервер FireBird 1.5 и ODBC драйвер для базы данных Firebird, Firebird_ODBC_2.0.0-Win32.exe (можно легко найти в инете в свободном доступе).

On Error Resume Next
ServerName = "."

While 1 'Вечный цикл
    Set objConn = CreateObject("ADODB.Connection")
    objConn.ConnectionString = "Driver=Firebird/InterBase(r) driver;Uid=SYSDBA;Pwd=masterkey;DbName=hostname:путь к вашей БД;"
    objConn.ConnectionTimeOut = 15
    objConn.CommandTimeout = 30
    objConn.Open

    Set objRecordset = objConn.Execute("DELETE FROM OPENFILES;")
    Set objRecordset = objConn.Execute("DELETE FROM USERS;")
    '==============================================================================
    Set FileService = GetObject("WinNT://" &  ServerName & "/LanmanServer")

    For Each Res In FileService.Resources    
        Set objRecordset = objConn.Execute("INSERT INTO OPENFILES (NAME_USER, NAME_FILE) VALUES ('"& Res.Get("User") &"','"& Res.Get("Path") &"')")
    Next

    Set objConnection = GetObject("WinNT://" & ServerName &"/LanmanServer")
    Set colSessions = objConnection.Sessions

    For Each objSession in colSessions
        Set objRecordset = objConn.Execute("INSERT INTO USERS (NAME_USER, NAME_COMPUTER) VALUES ('"& objSession.User &"','"& objSession.Computer &"')")
    Next

    objConn.Close

    WScript.Sleep 10000
Wend

БД содержится в прикреплённом файле.
Автор скрипта - JordanS.

Post's attachments

fb.zip 34.84 kb, 464 downloads since 2007-10-26 

You don't have the permssions to download the attachments of this post.
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.