powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / список процессов пользователя терминальной сессии
7 сообщений из 7, страница 1 из 1
список процессов пользователя терминальной сессии
    #35751917
Kasher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста как можно вывести список процессов пользователя терминальной сессии. Программа пишется на VB
Просто у меня выводится полный список всех процессов запущенных на сервере.
...
Рейтинг: 0 / 0
список процессов пользователя терминальной сессии
    #35752616
Kasher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот в диспетчере задач Windows есть вкладка процессы. Подскажите пожалуйста реально вытащить имя пользователя?
а именно нужно например создаем два listbox в одном отображается наименование процесса, а в другом имя пользователя запустившего процесс. Вот как вывести процесс понятно, но не получается вывести имя пользователя. Что за это отвечает?

Спасибо!
...
Рейтинг: 0 / 0
список процессов пользователя терминальной сессии
    #35752756
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
список процессов пользователя терминальной сессии
    #35752823
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через WMI.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
On Error Resume Next
Dim strComputer
Dim objWMIService
Dim propValue
Dim objItem
Dim SWBemlocator
Dim UserName
Dim Password
Dim colItems
Dim strUserName
Dim strUserDomain

strComputer = "."
UserName = ""
Password = ""

Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process",, 48 )

For Each objItem In colItems
    objItem.GetOwner strUserName, strUserDomain
    Wscript.Echo "Process " & objItem.Name & " is owned by " _ 
      & strUserDomain & "\" & strUserName & "."
Next

Вот еще статья на эту тему - How Can I Determine the Account a Process is Running Under?
...
Рейтинг: 0 / 0
список процессов пользователя терминальной сессии
    #35753549
Kasher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о спасибо большое))
завтра попробую
...
Рейтинг: 0 / 0
список процессов пользователя терминальной сессии
    #35756648
Kasher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все заработала программа! Спасибо всем за помощь))) код очень помог
...
Рейтинг: 0 / 0
список процессов пользователя терминальной сессии
    #35763109
Kasher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос немного не по теме, но просто раз ее начала, то не стала создавать отдельный топик
суть в том, что данная программа некорректно срабатывает. А именно, как то через раз.
При запуске программы иногда пишет что калькулятор или блокнот уже запущен, хотя в процессах ничего не висит. То есть просто не дает запустить данные программы. Все это происходит на сервере. Ошибку мне сложно найти :( Посмотрите пожалуйста, может кто быстро найдет. Вдруг обнуление, где не правильно поставила.

Код: plaintext
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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
Public q As Integer, w As Integer, strUserName As String, strUserDomain As String
Public xID As Integer ' ID процесса блокнота
Public rID As Integer ' ID процесса калькулятора
Public strComputer
Public objWMIService
Public propValue
Public objItem
Public SWBemlocator
Public UserName
Public Password
Public colItems

Private Sub Command1_Click()
Screen.MousePointer = vbHourglass
List1.Clear
List2.Clear
List3.Clear
On Error Resume Next
strComputer = "."
UserName = ""
Password = ""
objItem.Name = ""
strUserName = ""
strUserDomain = ""

Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer, "root\CIMV2", UserName, Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process", ,  48 )
q =  0 
For Each objItem In colItems
    objItem.GetOwner strUserName, strUserDomain
    List1.AddItem objItem.Name
    List2.AddItem strUserDomain & "\" & strUserName
    List3.AddItem objItem.Name & "  " & strUserDomain & "\" & strUserName
q = q +  1 
Next
Screen.MousePointer = vbDefault
For i =  1  To q
If List1.List(i) = "notepad.exe" And List2.List(i) = strUserDomain & "\" & strUserName Then
MsgBox "Блокнот уже запущен",  48 , "Сообщение"
Exit Sub
End If
Next i
xID = Shell("C:\Windows\notepad.exe",  1 )
strComputer = "."
UserName = ""
Password = ""
objItem.Name = ""
strUserName = ""
strUserDomain = ""
End Sub

Private Sub Command2_Click()
Screen.MousePointer = vbHourglass
List1.Clear
List2.Clear
List3.Clear
On Error Resume Next
strComputer = "."
UserName = ""
Password = ""
objItem.Name = ""
strUserName = ""
strUserDomain = ""

Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer, "root\CIMV2", UserName, Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process", ,  48 )
w =  0 
For Each objItem In colItems
    objItem.GetOwner strUserName, strUserDomain
    List1.AddItem objItem.Name
    List2.AddItem strUserDomain & "\" & strUserName
    List3.AddItem objItem.Name & "  " & strUserDomain & "\" & strUserName
'List2.AddItem "Process " & objItem.Name & " is owned by " & strUserDomain & "\" & strUserName & "."
w = w +  1 
Next
Screen.MousePointer = vbDefault
For i =  1  To w
If List1.List(i) = "calc.exe" And List2.List(i) = strUserDomain & "\" & strUserName Then
MsgBox "Калькулятор уже запущен",  48 , "Сообщение"
Exit Sub
End If
Next i
rID = Shell("C:\WINDOWS\System32\calc.exe",  1 )
strComputer = "."
UserName = ""
Password = ""
objItem.Name = ""
strUserName = ""
strUserDomain = ""
End Sub

Private Sub Command3_Click()
Dim strKillNotepad As String
Dim strKillCalc As String
Dim strKillCalc2 As String

If xID =  0  And rID =  0  Then
End
Exit Sub
End If
strKillNotepad = "cmd /x/c taskkill /f /pid " & CStr(xID)
'MsgBox strKillNotepad
Shell (strKillNotepad)
strKillCalc = "cmd /x/c taskkill /f /pid " & CStr(rID)
'MsgBox strKillCalc
Shell (strKillCalc)
End
End Sub

Private Sub Form_Load()
    If App.PrevInstance = True Then
    MsgBox "Программа уже запущена!"
    End
    End If
Screen.MousePointer = vbHourglass
List1.Clear
List2.Clear
List3.Clear
On Error Resume Next
strComputer = "."
UserName = ""
Password = ""
objItem.Name = ""
strUserName = ""
strUserDomain = ""

Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer, "root\CIMV2", UserName, Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process", ,  48 )
z =  0 
For Each objItem In colItems
    objItem.GetOwner strUserName, strUserDomain
    List1.AddItem objItem.Name
    List2.AddItem strUserDomain & "\" & strUserName
    List3.AddItem objItem.Name & "  " & strUserDomain & "\" & strUserName
z = z +  1 
Next
Screen.MousePointer = vbDefault
strComputer = "."
UserName = ""
Password = ""
objItem.Name = ""
strUserName = ""
strUserDomain = ""
End Sub
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / список процессов пользователя терминальной сессии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]