Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Автоматизация администрирования

Автор: FreemanRU
Дата сообщения: 29.08.2006 12:14
Задача. Необходимо на терминальном сервере подсчитать кол-во памяти, занимаемое каждым процессом в сессии пользователя. При этом вывести в виде таблицы: Сеанс пользователя, имя процесса, учетная запись владельцп процесса, занимаемая память. Не получается

Вар 1. objWMIService.ExecQuery("SELECT * FROM Win32_Process").
Не дает результата, т.к. не видно сесии. Есть несколько процессов, которые в сеансе пользователя запускаются от имени SYSTEM.

Вар 2. QUERY PROCESS * с вариациями.
Также не дает результата, т.к. не удается связать вывод команды с вариантом 1

Вар 3. objWMIService.ExecQuery("SELECT * FROM Win32_PerfRawData_TermService_TerminalServicesSession")
Тоже не идеально - выдает только общую занимаемую память для сесии, без имени пользователя.

Вот такая фигня выходит. Кто-нибудь решал что-либо подобное? Или будут ли советы по тому, как соединить Вар 1 и Вар 2?
Автор: Clavik
Дата сообщения: 29.08.2006 12:53
FreemanRU
А если получать список всех процессов с помощью утилиты:
tasklist /fi "Имя сеанса eq RDP-Tcp#19"

Сопоставляешь имя сеанса с пользователем, есть переменная %sessionname%, которая под сеансом пользователя дает имя его сеанса.


Добавлено:
честно сказать пока не придумал как из вывода выдрать все что нужно, имя процессов, PID, занимаемая память

Добавлено:
А там же есть вывод в CSV:
tasklist /fi "Имя сеанса eq RDP-Tcp#19" /FO CSV

выдет примерно так:
"Имя образа","PID","Имя сессии","№ сеанса","Память"
"csrss.exe","9504","RDP-Tcp#19","17","3 112 КБ"
"winlogon.exe","9140","RDP-Tcp#19","17","1 204 КБ"
"rdpclip.exe","8944","RDP-Tcp#19","17","3 960 КБ"
"ssonsvr.exe","9396","RDP-Tcp#19","17","2 004 КБ"
Автор: SVOI_CHUVAC
Дата сообщения: 29.08.2006 13:08
Помогите решить проблемку, надо написать скрипт для отправки почты администратору, почтовый сервер -exchange2003, клиент - ms outlook2003, или как нибудь напрямую можно? телнет? кто что скажет новичку по этому поводу?
Автор: Clavik
Дата сообщения: 29.08.2006 13:19
SVOI_CHUVAC
Воспользуйся любым консольным почтовым клиентом. Например, postie:
http://forum.ru-board.com/topic.cgi?forum=35&topic=13358#1
Автор: FreemanRU
Дата сообщения: 29.08.2006 14:12
Clavik

Цитата:
А там же есть вывод в CSV:
tasklist /fi "Имя сеанса eq RDP-Tcp#19" /FO CSV

Есть две проблемы - привязка к пользователю-владельцу процесса, и русские буквы в ДОС кодировке.

Добавлено:
SVOI_CHUVAC
Пробеги по ветке, было масса примеров отправки почты скриптом.
Автор: Clavik
Дата сообщения: 29.08.2006 14:35

Цитата:
привязка к пользователю-владельцу процесса


Если ты по имени пользователя получишь имя его сеанса, затем имя сеанса подставишь в tasklist и получишь файл со списком процессов, и из него выковыреваешь имя процесса, PID, и кол-во памяти процесса.


Цитата:
и русские буквы в ДОС кодировке


а с этим какие проблемы?
Автор: urel
Дата сообщения: 29.08.2006 14:39
2FreemanRU

а если просто распарсить вывод tasklist /v

там все будет
Автор: FreemanRU
Дата сообщения: 29.08.2006 14:42
Clavik

Цитата:
Если ты по имени пользователя получишь имя его сеанса, затем имя сеанса подставишь в tasklist и получишь файл со списком процессов, и из него выковыреваешь имя процесса, PID, и кол-во памяти процесса

Это мне придется запускать tasklist для каждого пользвоателя. Не оперативно и долго. Пользователь может разлогиниться уже, пока до него дойдет очередь.


Цитата:

Цитата: и русские буквы в ДОС кодировке

а с этим какие проблемы?
Автор: urel
Дата сообщения: 29.08.2006 16:28
FreemanRU
нужно писать, скорее всего, или исспользовать конвертилку какую нить
http://netcode.ru/cpp/?lang=&katID=6&skatID=41&artID=543

Добавлено:
http://www.whitetown.com/download/d2w.zip
Автор: 2maru
Дата сообщения: 29.08.2006 19:01
простите, уверен что есть уже такой ответ наверное. но - не нашел, ссылку дайте или на пальцах обьясните:

есть компьютер.
на нем жесткий диск разбит на C: (10GB) и D (70GB)
на с - система (w2k)
установлена программа Paragon Encripded disk 2000
и поэтому на D: лежит файл xxxxxxx.* (30GB) - шифродиск

при запуске этого компа выдается (автозапуском) окошко с запросом пароля. Ктото вводит туда пароль, и после этого появляется диск L: - этот самый шифродиск.

Этот комп для того и нужен чтобы ВСЕ документы хранились на нем. В сети до 20 ПК.

А теперь внимание - проблема:
Приходится КАЖДЫЙ РАЗ после включения и подмотнирования диска идти в его свойства - доступ - и открывать к нему доступ, добавлять группы Польззователи, Опытные пользоатели и администраторы, тыкая на каждой по 3 галочки

как сделать один командный файл, чтобы еетыкнул 2 раза мышкой , и доступ появился?

(безопасность слава-богу сохраняется (система NTFS) - поэтому по поводу доступа все хорошо - кому не надо куда не надо не залезут.

заранее большое спасибо!
Автор: FreemanRU
Дата сообщения: 29.08.2006 21:18
2maru

Код:
net share docs_share=L:\
Автор: 2maru
Дата сообщения: 30.08.2006 02:13
я не использую простой общий доступ. в том то и дело - только для трех групп надо
Автор: FreemanRU
Дата сообщения: 30.08.2006 09:32
2maru
ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/RMTSHAR.EXE

How can I modify share permissions from the command line?
Автор: SVOI_CHUVAC
Дата сообщения: 30.08.2006 14:29
Еще вопроссик в тему VBS и учетных пользователей. Задача: нужно добавить на каждую из рабочих станций в группу локальных администраторов группу администраторов домена. Через групповые политики не получится, многи "продвинутые" пользователи удаляют её, дабы делать с компом что хош. Есть идея написания скрипта который при входе в домен (logon) добавлял эту группу автоматически. Как это сделать? Интересуею VBS скрипт, но по возможности без использования LDAP.
PS Это нужно для централизованнй смены паролей локальных администраторов на всех машинах. Т.к скрипт для смены проходит только в случае если пользователь является локальным админом.
Автор: FreemanRU
Дата сообщения: 30.08.2006 14:36

Цитата:
многи "продвинутые" пользователи удаляют её

А отобрать у них локальные прова? Иначе все твои потуги - пшик.
А вообще это делается через "Группы с ограниченным доступом" (идиотский перевод) в GPO.
Автор: SVOI_CHUVAC
Дата сообщения: 30.08.2006 14:47
Угу... в организации больше 600 компов все входят в комп под гостевым доступом, пароль локального администратора для некоторых не секрет, естественно те кто знал пароль тут же завели себя в группу админов своих машин и удалили группу Domain admins, если я к каждому буду ходить.... или ездить... то работы на несколько недель, а права уже были раньше, у кого какие, просто вот решили порядок навести.
Автор: Clavik
Дата сообщения: 30.08.2006 15:02
SVOI_CHUVAC
1. В групповой политике в Конфиге компа - Политика группы с ограниченным доступом - там прописываешь группу Администраторы (или по англ), прописываешь в нее кого надо и все. Теперь при загрузке компа в группе останутся (добавятся) те кого ты прописал.

2. Сменить всем пароль локального админа, можно прогой BuiltIn.exe, прописываешь ее в сценарий запуска в конфиге компа и все, пароль поменял.
Ща ссылку выложу здесь.

Добавлено:
_http://www.optimumx.com/download/BuiltIn.zip
Автор: azar323
Дата сообщения: 30.08.2006 16:44
Дал людям доступ к терминальному серверу из дома. Назрела необходимость помониторить кто откуда заходил. Долго искал утилиту парсинга EventLog.
Нашёл, где не думал: у Микрософта. Делюсь:
Вот отсюда берём утилиту парсинга:
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en
Из неё нужен файл LogParser.exe
Создаём файлик IP.sql вот с таким текстом:
SELECT TimeGenerated,
EXTRACT_TOKEN(strings,0,'|') as loginName,
EXTRACT_TOKEN(strings,13,'|') as loginIP,
EXTRACT_TOKEN(strings,14,'|') as loginPORT,
REVERSEDNS(loginIP) as Host
INTO Report.txt FROM Security WHERE EventID = 528
AND TRIM(EXTRACT_TOKEN(strings,3,'|'))= '10'
AND loginIP NOT LIKE '192.168.%'
и запускаем такую командную строку:
logparser file:IP.sql -i:evt -o:TSV
В результате в папке с парсером появится файлик с перечнем успешных сеансов удалённых пользователей:
когда, кто, откуда зашёл.
Надеюсь, кому-то это пригодится.
Автор: Yourbill
Дата сообщения: 30.08.2006 16:58
2maru

Цитата:
я не использую простой общий доступ. в том то и дело - только для трех групп надо

А какая разница какие права на шаре, если у тебя :

Цитата:
(безопасность слава-богу сохраняется (система NTFS) - поэтому по поводу доступа все хорошо - кому не надо куда не надо не залезут.

Вариант предложенный FreemanRU вполне проканает
Или листай топик, гдето уже это видел.
Автор: svkov
Дата сообщения: 31.08.2006 07:51
azar323
Премного благодарен. Тоже долго не находил чего-то подходящего для этих целей.
Данный вариант работает и вполне приемлем.
Запрос (файл IP.sql) мне больше нравится вида:
SELECT TimeGenerated,
EXTRACT_TOKEN(strings,0,'|') as loginName,
EXTRACT_TOKEN(strings,4,'|') as LogonComp,
EXTRACT_TOKEN(strings,5,'|') as loginIP,
REVERSEDNS(loginIP) as Host
INTO Report_Terminal.txt FROM Security WHERE EventID = 682

т.к. при конекте к терминалу через ISA2004 в логе у меня только IP ISA, а так имя удаленного компа.


Буду благодарен если сможншь помочь по похожей проблеме
http://forum.ru-board.com/topic.cgi?forum=8&bm=1&topic=17213#1
Автор: GOODmen
Дата сообщения: 31.08.2006 09:19
Братья, а можно ли сделать так чтобы при добавлении нового компа в домен он автоматом попадал в нужный OU, а не в папку Computers?
Автор: airat88
Дата сообщения: 31.08.2006 15:59
to GOODmen

В 2003 есть redircmp CONTAINER-DN.

Если через скрипты см. HELP на JoinDomainOrWorkGroup (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/joindomainorworkgroup_method_in_class_win32_computersystem.asp). 4 параметр.
Там же и пример есть.
Автор: BigPtica
Дата сообщения: 01.09.2006 12:34
Добрый день. меня сюда направили с другой ветки вот с каким вопросом:

Может кто-нить подсказать, как с помощью скриптов поменять у службы действия, которые она должна выполнять после первого сбоя, второго сбоя и т.д.

Заранее благодарен.
Автор: isem
Дата сообщения: 01.09.2006 14:43
BigPtica


If ErrorLevel 0 (Call :yourProcedure)

Если сбой то вызывается процедура :yourProcedure
Автор: Refugee
Дата сообщения: 01.09.2006 18:25
BigPtica
sc failure
Автор: BigPtica
Дата сообщения: 04.09.2006 08:30
isem & Refugee
Я так понимаю, что меня не совсем правильно поняли.
Мне нужно поменять у некоторой службы все действия при сбое на "ничего не выполнять", затем совершить некоторые действия, и затем поменять эти параметры на исходные.

Автор: urel
Дата сообщения: 04.09.2006 09:24
BigPtica
тебе нужно изменить Service Recovery
можеш сделать в реестре, частный случай Windows Audio:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AudioSrv]
"FailureActions"=hex:00,00,00,00,00,00,00,00,00,00,00,00,03,00,00,00,53,00,65,\
00,00,00,00,00,60,ea,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

перезапустить в 1й раз. вопрос в том когада он примениться =)
Автор: BigPtica
Дата сообщения: 04.09.2006 12:55
urel
Не подходит. Действия там не очень большие, их надо сделать и всё вернуть как было. Раз это есть в гуи, значит должна быть скриптовая возможность (надеюсь).


А может ещё кто-нить подскажет. Как из Актив Директори вытащить информацию о разрешённом времени входа для пользователей.
Автор: urel
Дата сообщения: 04.09.2006 13:29
BigPtica

если тебе нужно одиноково поменять на n к-ве машин то на одном поменял - а на остальных импорт того что было - и экспорт новых настроек.

TechNet Script Center Sample Scripts + ADSI

logonHours в свойствах пользователя
Автор: uZver
Дата сообщения: 04.09.2006 13:37
BigPtica
а чем не устроил ответ Refugee
через sc failure
описание тут: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sc.mspx?mfr=true

сначало убрать действия при сбое actions= ""
потом сделать все что нужно
и через sc вернуть обратно.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Зеркалирование дисков Win2000


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.