|   |   | 
| 
 | WMI.ExecQuery("Select * from Win32_Process") - не видит процессы одного из пользователей. | ☑ | ||
|---|---|---|---|---|
| 0
    
        trdm 28.09.18✎ 15:32 | 
        Скрипт на vbs, для проверки нештатных ситуаций.
 Одна из них MS SQL сервер начинает тупить, если оттожрал памяти = ему выделенной. Приходится перезагружать. Пытаюсь определить сколько памяти он скушал, скрипт: Function getProccessMemoryMBytes(psProccName) vBytes = 0 ' todo не видит процессы администратора на SERVERSQL234 set WMI= GetObject("WinMgmts:") set cProcess=WMI.ExecQuery("Select * from Win32_Process") vStrAll = "" vTextSms = "" 'WorkingSetSize http://forum.oszone.net/post-2493717.html for each objP in cProcess if InStr(objP.ExecutablePath,psProccName)>0 Then vBytes = Round(objP.WorkingSetSize / gBytesInMb,2) exit For end if next getProccessMemoryMBytes = vBytes End Function НО! Фишка в том, что MS SQL запушен под логином "Администратор", сессия работает под другим логином и скрипт не видит этот процесс. На локальной машине все в норме. На серваке не видит. Подскажите, может что поправить, в WMI не силен. | |||
| 1
    
        Вафель 28.09.18✎ 15:33 | 
        может нужно с повышенными правами запускать?     | |||
| 2
    
        trdm 28.09.18✎ 15:34 | 
        Я и так админ, моя учетка в группе администраторов.     | |||
| 3
    
        Cool_Profi 28.09.18✎ 15:35 | 
        У МССКЛ есть настройка, сколько ему позволено памяти брать...     | |||
| 4
    
        Вафель 28.09.18✎ 15:35 | 
        (2) этого не достаточно. У тебя винда какая?     | |||
| 5
    
        trdm 28.09.18✎ 15:38 | 
        2003     | |||
| 6
    
        Вафель 28.09.18✎ 15:39 | 
        (5) тогда должно и так работать     | |||
| 7
    
        trdm 28.09.18✎ 15:42 | 
        (6) Может консольный сканер процессов есть? Могу и его вывод разобрать.     | |||
| 8
    
        Вафель 28.09.18✎ 15:43 | 
        в диспетчере задач то видишь?     | |||
| 9
    
        trdm 28.09.18✎ 15:50 | 
        (8) Это да, но только с флагом []&Отображать процессы всех пользователей     | |||
| 10
    
        trdm 28.09.18✎ 15:52 | 
        И даже можно грабануть, если окно найти.
 http://prntscr.com/kzsxcv | |||
| 11
    
        Вафель 28.09.18✎ 15:55 | 
        strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process") For Each objProcess in colProcessList colProperties = objProcess.GetOwner( _ strNameOfUser,strUserDomain) Wscript.Echo "Process " & objProcess.Name _ & " is owned by " _ & strUserDomain & "\" & strNameOfUser & "." Next https://stackoverflow.com/questions/15269677/how-to-get-all-the-users-processes-in-wmi | |||
| 12
    
        trdm 28.09.18✎ 16:02 | 
        Вопрос можно закрывать, консоль может выручить:
 http://cmd4win.ru/administrirovanie-computera/systemnoye-administrorovanie/26-tasklist (11) Мерси, но все равно на видит. | |||
| 13
    
        trdm 28.09.18✎ 16:03 | 
        А вот tasklist - видит. Только попробовал.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |