Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] вопрос про пользователей в Windows (http://forum.oszone.net/showthread.php?t=309594)

DimmKo 25-12-2015 10:28 2588173

вопрос про пользователей в Windows
 
Добрый день.
Для мониторинга активности на серверах создал задачу, которая при авторизации пользователя отправляет e-mail с темой "Произведен вход в Windows".
Но хотелось бы немного расширить информативность, т.е. какой именно пользователь осуществил вход в ОС.

Отправка осуществляется через программу blat

Подскажите, пожалуйста, как можно передать в нее параметр о конкретном пользователе?
Спасибо.

UPD
и вот еще странность: если я логинюсь удаленно, то не работает эта команда.

WMIC /NODE: "[имя_компьютера]" COMPUTERSYSTEM GET USERNAME
UserName

Iska 25-12-2015 12:58 2588231

Покажите саму:
Цитата:

Цитата DimmKo
создал задачу »


DimmKo 26-12-2015 11:23 2588469

Iska, я вчера гуглил гуглил и нагуглил одну команду.
WMIC /NODE: "имя_компьютера" COMPUTERSYSTEM GET USERNAME

Потом сделал вот такой bat'ничек:
Скрытый текст
echo off
WMIC /NODE: "[my_pc]" COMPUTERSYSTEM GET USERNAME >> d:\user.txt
start f:\blat3211\full\blat.exe -charset CP-1251 -bodyF d:\user.txt -subject "Login Windows" -to [my_mail] -server [my_server] -f [mail] -u [login] -pw [password]
ping 127.0.0.1 -n 6 > nul
del d:\user.txt


оно раньше выдавало, что пользователь такой-то... но теперь перестало.

Iska 26-12-2015 15:59 2588541

Цитата:

Цитата DimmKo
и нагуглил одну команду.
WMIC /NODE: "имя_компьютера" COMPUTERSYSTEM GET USERNAME »

Код:

wmic.exe /node:MachineName ComputerSystem get UserName
— т.е., никаких пробелов между «/node:» и именем/адресом машины. Для текущей машины вообще весь параметр «/node» не нужен. Кодировка вывода wmic.exe — Unicode, UTF-16LE/1200. «start» вообще уберите, зачем он нужен?

DimmKo 28-12-2015 11:30 2589027

Iska,
Цитата:

Цитата Iska
— т.е., никаких пробелов между «/node:» и именем/адресом машины. Для текущей машины вообще весь параметр «/node» не нужен. Кодировка вывода wmic.exe — Unicode, UTF-16LE/1200. «start» вообще уберите, зачем он нужен? »

1) пробел есть. Я прям скопировал и вставил
2) без "start" почему-то выдавало что неможет запустить Blat.exe
Я не силен в скриптах, потому нашел вот такое решение.

Поискав уже по этой команде нашел чуточку другое решение
Код:

WMIC /NODE: xxx.xxx.xxx.xxx COMPUTERSYSTEM GET USERNAME
Will return the username currently logged into xxx.xxx.xxx.xxx

Буду его пробовать.

Charg 28-12-2015 15:24 2589155

Цитата:

Цитата DimmKo
пробел есть. Я прям скопировал и вставил »

Ну так а не должно быть, тебе ж сказали...

Мог бы банально хэлп почитать:
Код:

C:\Users\charg>wmic /node /?

NODE - Specify which servers the alias will operate against.
USAGE:

/NODE:<machine id list>
NOTE: <machine id list> ::= <@filename | machine id> | <@filename | machine id>
<,machine id list>

NOTE: Enclose the switch value in  double quotes, if the value contains special
 characters like '-' or '/'.


Iska 28-12-2015 16:05 2589169

Цитата:

Цитата DimmKo
1) пробел есть. Я прям скопировал и вставил »

Пробела не должно быть.

Цитата:

Цитата DimmKo
2) без "start" почему-то выдавало что неможет запустить Blat.exe »

«start» тут не нужен. Если будет «почему-то выдавать, что неможет запустить» — покажете точное сообщение об ошибке.

Цитата:

Цитата DimmKo
Поискав уже по этой команде нашел чуточку другое решение »

Абсолютно идентичное предыдущему :).

El Scorpio 29-12-2015 02:14 2589339

Цитата:

Цитата DimmKo
Iska, я вчера гуглил гуглил и нагуглил одну команду.

WMIC /NODE: "имя_компьютера" COMPUTERSYSTEM GET USERNAME
Потом сделал вот такой bat'ничек:
Скрытый текст
echo off
WMIC /NODE: "[my_pc]" COMPUTERSYSTEM GET USERNAME >> d:\user.txt
start f:\blat3211\full\blat.exe -charset CP-1251 -bodyF d:\user.txt -subject "Login Windows" -to [my_mail] -server [my_server] -f [mail] -u [login] -pw [password]
ping 127.0.0.1 -n 6 > nul
del d:\user.txt »

Товарищи, а разве переменные окружения USERNAME и COMPUTERNAME уже отменили?
Код:

blat.exe -charset CP-1251 -subject "Login %USERNAME% at %COMPUTERNAME%" -to [my_mail] -server [my_server] -f [mail] -u [login] -pw [password]

Iska 29-12-2015 04:01 2589353

Цитата:

Цитата El Scorpio
Товарищи, а разве переменные окружения USERNAME и COMPUTERNAME уже отменили? »

Конечно, не отменили. Но автор никак не хочет показать свою задачу, а вместо этого гуглит, гуглит и гуглит…

DimmKo 29-12-2015 08:24 2589382

Iska, ваше ЧСВ явно зашкаливает...
с пробелом работает

El Scorpio,
спасибо. Попробую сделать как вы сказали.

Iska 29-12-2015 08:36 2589385

Цитата:

Цитата DimmKo
Iska, ваше ЧСВ явно зашкаливает... »

DimmKo, хотите поговорить об этом?

DimmKo 29-12-2015 08:52 2589388

Iska, мне не до глупостей, извините.

Цитата:

Цитата El Scorpio
Код:
blat.exe -charset CP-1251 -subject "Login %USERNAME% at %COMPUTERNAME%" -to [my_mail] -server [my_server] »

попробовал ваш совет - blat стопорится. Прилагаю скрин.
Может я вас не правильно понял? Хотя, просто скопировал -subject "..."
Скрытый текст

Iska 29-12-2015 09:16 2589396

Цитата:

Цитата DimmKo
Iska, мне не до глупостей, извините. »

Так и не начинали бы.

El Scorpio 30-12-2015 01:33 2589693

Цитата:

Цитата DimmKo
попробовал ваш совет - blat стопорится. Прилагаю скрин. »

Поскольку я убрал параметр -bodyF, загромождающий конструкцию лишними операциями создания/удаления временного файла, скорее всего blat ожидает ввод текста письма.
Можно использовать параметр blat -body "Текст сообщения " .... или конвейер echo "Текст сообщения" | blat ...

Само сообщение можно опять таки оформить через системные переменные.
Например "User '%USERNAME%' was login on computer '%COMPUTERNAME%' at %DATE% %TIME%"

Iska 30-12-2015 03:27 2589703

Ещё вариант может быть такой, что почтовому провайдеру только SSL подавай.

DimmKo 30-12-2015 08:02 2589725

El Scorpio, супер!!!!
Спасибо!!! Прям вот то, что хотел. :up
Параметр bodyF я добавил т.к. сначала отрабатывала WMIC /NODE: "[имя_компьютера]" COMPUTERSYSTEM GET USERNAME, которая в текстовый файл передавала полученные данные. А потом на основе этого файла blat формировал письмо. :dont-know
Я только начинаю вникать в администрирование и про системные переменные слышал, но пока еще не научился их использовать.
Знаю, что конструкция, как вы упомянули выше (echo ... | blat ...), используется в Linux. Там мне довелось самому делать нечто в этом роде, но только более простое.
Попробую проверить будет ли отправлять сообщение, если пользователь через удаленный сеанс залогинился.

Iska, спасибо за совет. Я в справке blat'а не нашел такой опции.
До этого пробовал sendmail, но он вообще не захотел почту отправлять. Возможно, что из-за пароля, т.к. там были спец символы (@#$^!) и он писал что "команда не найдена". Я пробовал пароль заключать в " " и ' ' кавычки, но всё равно не уходила почта. :drug:
И в связи с этим я нашел информацию про blat и решил им воспользоваться.
Единственно, что почтовик "местный", т.е. работает внутри сети. Как он настроен я пока не выяснял - сам по себе он или некий relay. Но с этим я буду разбираться на НГ каникулах.
Сейчас вот хотелось бы реализовать уведомления кто из пользователей логинился. А то бывает неразбериха кто и что там правит, а потом концов не найти.

Всем спасибо за ваши советы!
С наступающим НГ! :vine

El Scorpio 30-12-2015 08:23 2589728

Цитата:

Цитата DimmKo
Я только начинаю вникать в администрирование и про системные переменные слышал, но пока еще не научился их использовать. »

А что тут "использовать"?
Пишешь в командной строке set и читаешь список значений.
Потом используешь по мере необходимости. При использовании в командной строке или командном файле нужно обрамлять "процентами" %ИМЯ_ПЕРЕМЕННОЙ%

Цитата:

Цитата DimmKo
Знаю, что конструкция, как вы упомянули выше (echo ... | blat ...), используется в Linux. »

Открою страшную тайну - конструкции вида "команда1 | команда 2" и "команда > файл" использовались ещё в MS-DOS.
Конечно, CMD по своим возможностям значительно уступает BASH, однако многие функции работают одинаково

Цитата:

Цитата DimmKo
До этого пробовал sendmail, но он вообще не захотел почту отправлять. Возможно, что из-за пароля, т.к. там были спец символы (@#$^!) и он писал что "команда не найдена". Я пробовал пароль заключать в " " и ' ' кавычки, но всё равно не уходила почта.
И в связи с этим я нашел информацию про blat и решил им воспользоваться. »

Также blat может хранить параметры в реестре или в текстовом файле.

Цитата:

Цитата DimmKo
Единственно, что почтовик "местный", т.е. работает внутри сети. Как он настроен я пока не выяснял - сам по себе он или некий relay. Но с этим я буду разбираться на НГ каникулах. »

Если почтовик имеет доменное имя, которое зарегистрировано в глобальном DNS, возможно он работает сам по себе.
Ежели домен .local - однозначно релей, пересылающий почту через какой-то внешний сервер.
Для почтовой программы - разницы никакой. Главное, чтобы при использовании SSL сертификат почтового сервера был выдан доверенным центром или же добавлен в список "доверенных" на компьютере.

DimmKo 04-01-2016 18:45 2591127

всем спасибо за помощь!
Всё работает.


Время: 21:58.

Время: 21:58.
© OSzone.net 2001-