1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Option Explicit
Dim strConnection, conn, rs, strSQL, objWMIService, objProcess, colProcess, User, Domain, Rtn
Dim server, login, mdp, database, strComputer, strList, hostprocess, strMatricule
server = inputbox( "Nom du serveur SQL", "Input","" )
login = inputbox( "Nom Utilisateur SQL", "Input","" )
mdp = inputbox( "Mot de passe SQL", "Input","" )
database = inputbox( "bdd", "Input","master" )
strConnection = "Driver={SQL Server};Server=" & server & ";Database=" & database & ";Uid="& login & ";Pwd=" & mdp & ";"
Set conn = Wscript.CreateObject("ADODB.Connection")
conn.Open strConnection
Set rs = Wscript.CreateObject("ADODB.recordset")
strSQL = "select LTRIM(RTRIM(hostname)) as 'hostname', LTRIM(RTRIM(hostprocess)) as 'hostprocess' from sysprocesses where dbid=DB_ID('IcarDMS') and kpid > '0' and blocked >'0'"
rs.open strSQL, conn, 3,3
rs.MoveFirst
strMatricule = ">>>" & rs.fields("hostname") & "-" & rs.fields("hostprocess")
MsgBox (strMatricule)
'-------------------
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & rs.fields("hostname") & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process WHERE ProcessId="& rs.fields("hostprocess") &"")
For Each objProcess in colProcess
If objProcess.GetOwner ( User, Domain ) = 0 Then
strList = strList & vbCr & "Processus " & objProcess.Caption & " Executé " & Domain & "\" & User & "sur le serveur" & rs.fields("hostname") & "-" & rs.fields("hostprocess")
Else
strList = strList & vbCr & "Problem " & Rtn & " getting the owner for process " & objProcess.Caption
End If
'strList = strList & vbCr & objProcess.Name & "-" & objProcess.ProcessId
Next
WSCript.Echo strList
'-----------
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing |
Partager