Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 3

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Открыть новую тему     Написать ответ в эту тему

ShriEkeR



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущие части: 1 | 2
 
   

Коллеги-администраторы...

 
Думаю каждый из вас сталкивался с необходимостью выполнять некие несложные рутинные операции, на которые уходит много драгоценного времени.
 Например, создать определенную структуру каталогов для каждого пользователя домена, изменить некие параметры в профилях всех или части пользователей, изменить полномочия/владельца однотипных файлов в разных каталогах т.д.  
Я, как сисадмин, тоже не раз был вынужден делать все это.  Руками делать это тоскливо и муторно, как вы понимаете. Должен заметить, что по неким "религиозным" убеждениям я всегда старался избегать любых отношений с бейсиком и его производными. Еще мой отец учил меня не иметь с ним никаких дел. Буквально. А теперь я учу своего сына тому же. Но, тем не менее, полностью избежать этого, по всей видимости, невозможно, тем более, что бейсик от M$ сейчас уже далеко не та "лапша", которой он был изначально, а современный структурированный язык, нашедший множество применений. Похоже, что для меня в очередной раз настала пора выучить еще что-то. Знаете, как курильщик много раз безуспешно пытается бросить курить, так и я не раз пытался подступиться к изучению VBScript, но пока никак не одолел. Лень, знаете ли. А инструмент в делах административных был бы весьма пользительный, должен заметить, для быстрого написания всякого рода скриптов.

 
    Внимание   !  !  !  

  • Поскольку данный топ весьма не мал, не забывайте  использовать "версию для печати" для более удобного поиска по теме. А также МЕГА ПОИСКОВИК от NEPa

  • Дабы не раздувать топ,  примеры своих  скриптов  заключаем в тег  "more"

Консольные команды. Командный интерпретатор

Windows Script Host (WSH) &  VBScript  &  JScript


Вышеперечисленные буки можно  взять здесь

    ТOOLS :
  1. Autoit+readme.rus
  2. Scriptologic
  3. AutoMate
  4. KIXTART
  5. nnCron-Планировщик с поддержкой скриптового языка --  РЕКОМЕНДУЮ
  6. WGET, GREP, GETMAIL, BLAT for Windows замечательные консольные утилиты
  7. 4dos/4nt -- отличная замена стандартного коммандного интерпретатора  
  8. JudoScript - java подобный скриптовый язык с исходниками
  9. VBS2EXE - утилита для компиляции vbs и js скриптов в exe выдранная из пакета PrimalScript

    Дружественные темы :
  1. Автоматическая (unattended) установка Windows
  2. Интересные команды при работе с Linux
  3. Отличный сайт по скриптингу, и не только
  4. Использование KIX
  5. Использование WMI
  6. Программирование "удобняшек" на VBScript

 
Подробнее...
Создается по материалам данного топа

 
Надеюсь данная тема будет полезна для Вас.
Jovanotti

Всего записей: 6382 | Зарегистр. 27-09-2004 | Отправлено: 21:07 23-05-2011 | Исправлено: Jovanotti, 23:29 21-03-2012
userrus

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaurych
Пример на Диспетчере печати
Службы - Закладка "Восстановление" - Действия при сбое - все три выбираем "Запуск программы"
Далее Выполнение программы - Программа: - указываем полное имя батника с путем.
Содержимое батника:
 
@rem Убеждаемся в остановке службы
net stop Spooler
@rem Ожидаем остановки 20 сек.
timeout /t 20 /nobreak >nul
@rem Удаляем что нужно
del /f /q c:\Windows\System32\spool\PRINTERS\*.*
@rem Запускаем службу
net start Spooler
exit

Всего записей: 78 | Зарегистр. 27-09-2005 | Отправлено: 10:25 16-04-2018 | Исправлено: userrus, 10:50 16-04-2018
andzhej10



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задача: нужно на ОС Windows Server 2008 проверять залогирован ли в системе некий пользователь, если нет - то нужно его залогинить. Кто такое делал и как? Права админа есть.

Всего записей: 107 | Зарегистр. 07-09-2010 | Отправлено: 12:21 21-05-2018
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andzhej10
Цитата:
Кто такое делал и как?
Делали, но совершенно противоположную задачу.
Для проведения профилактических работ на информационной системе
нужно было выяснить, кто залогинен на терминальном сервере,
и выполнить принудительный выход их из системы с закрытием
запущенных программ.
Сделать это можно массой способов, вот пример для PowerShell:
https://gallery.technet.microsoft.com/scriptcenter/List-of-logged-in-users-3da6ca51
Но вот как абстрактно залогинить юзера - сие непонятно.


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17008 | Зарегистр. 13-06-2007 | Отправлено: 19:34 21-05-2018
DenSyo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andzhej10
из сеанса админа (не важно на самом деле) на сервере открыть рдп-сеанс того другого пользователя и закрыть окно сеанса.  
с командами комрады помогут

Всего записей: 163 | Зарегистр. 19-01-2008 | Отправлено: 10:29 22-05-2018
andzhej10



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DenSyo
тут сказали, что програмнное залогирование не возможно сделать никаким скриптом-батником. Я ниже там описал, что мне нужно, тут еще повторю - нужно, чтоб при перезагрузки/включения сервера данный пользователь програмно залогинивался, а другие пользователи интерактивно. И еще осуществлялась проверка - залогинин ли данный пользователь в данный момент, если нет (выбило что-то) автозалогинить его.

Всего записей: 107 | Зарегистр. 07-09-2010 | Отправлено: 11:44 22-05-2018 | Исправлено: andzhej10, 11:45 22-05-2018
DenSyo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andzhej10
ну почему же нельзя. прописываем рдп-файл с пользователем и паролем, хоть раз в час запускаем mstsc с этим файлом в качестве параметра, даже проверку на открытый сеанс делать не надо, и закрываем окно сеанса. с закрытием окна не подскажу сейчас скрипт, но эта тема избита. а можно не закрывать окно сеанса, ограничить пользователя на сервере одним сеансом и предыдущее окно само закроется. тут только нюанс, сеанс того пользователя из которого будет запускаться скрипт должен быть активным, т.е. после перезагрузки сервера чтобы он автологинился локально

Всего записей: 163 | Зарегистр. 19-01-2008 | Отправлено: 12:11 22-05-2018
andzhej10



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DenSyo

Цитата:
тут только нюанс, сеанс того пользователя из которого будет запускаться скрипт должен быть активным, т.е. после перезагрузки сервера чтобы он автологинился локально

пришли к тому с чего начинали...Ситуация: под неким пользователем выполняються регл.задачи 1С 7.7, поэтому этот пользователь обязательно должен быть залогинен (особенности 1С 7.7). И здесь для этого скрипта пользователь должен быть залогинен...

Всего записей: 107 | Зарегистр. 07-09-2010 | Отправлено: 14:58 22-05-2018
DenSyo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
такой вариант пробовали?
https://support.microsoft.com/ru-ru/help/324737/how-to-turn-on-automatic-logon-in-windows
http://www.ekzorchik.ru/2017/10/how-to-configure-autologon-on-server-2016/
http://expert-advice.org/windows-server/how-to-set-up-auto-login-windows-server-2012-and-2016/
http://microsoftgeek.com/?p=2375
вы задачу не правильно изначально описали, я вам и дал решение под условие. а проверять ничего не надо, надо просто отключить всякое закрытие локального сеанса. либо, если эта спец учетка для 1с не админ, а это правильно, на сервере стоит завершение/закрытие сессии при бездействии, то локально автологиним админа, ставим правило не завершать сеанс локального администратора, и от его имени периодически стартуем сеанс рдп с 1с пользователем.

Всего записей: 163 | Зарегистр. 19-01-2008 | Отправлено: 15:22 22-05-2018 | Исправлено: DenSyo, 15:34 22-05-2018
andzhej10



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Понятно, спасибо.

Всего записей: 107 | Зарегистр. 07-09-2010 | Отправлено: 15:48 22-05-2018
caspara



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Можно ли как-то написать ЛДАП запросы к домену.
Имеется такая задача (для себя).
Домен, права в домене у меня только на мою область. Но запросы написать можно
Вот стандартный запрос на учетные записи отделений, которые неправильно вводят логин\пароль 5 раз.
Запрос успешно отрабатывается.

 
Вопрос 1.
Почему мой запрос на пользователей не отрабатывается?

 
Задачка 2
Стандартный запрос на пк, которые не логинились в домен 60 дней сначала пишет  
 

 
вроде как запрос не отобразится, но тем не менее, результат он выдает в итоге.
 

 
Вопрос 2 - как написать запрос аналогично для пользователей, ну например, по полю lastlogoff ?
 
ЗЫ из Экселя я могу выгрузить запрос по фильтрам
- люди из моей ветки (Донецкая)
- активные пользователи (512 параметр)
- ласт логон и логоф, и далее уже в экселе сравнить текущую дату с одной из этих выгруженных. Но это чуть дольше, чем хочется.

 
Или подскажите, где можно почитать про написание таких запросов в этой оснастке.
 
Из общения с админом домена генеральной ветки, точно знаю, что он скриптом чистит мою ветку от юзером и пк, не входивших в домен за 90 дней. Мне бы хотелось видеть список людей, скажем, дней за 80.
Спасибо.

Всего записей: 466 | Зарегистр. 04-08-2004 | Отправлено: 14:46 16-08-2019 | Исправлено: caspara, 15:00 16-08-2019
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1 скорее всего твой запрос должен выглядеть примерно так  
(&(objectCategory=user)(objectClass=user)(userPrincipalName=*)(badPwdCount>=5))
 
2 в мастере напротив имени ( соответствует) ставите * и галку "откл учетные записи", т.к. по умолч если чел не логинелся 1 месяц его учетка откл.  
 
возмона будет что-то типо этого (&(objectCategory=user)(objectClass=user)(userPrincipalName=*)(date-LastLogoff>=80))
 
(я хз в каком формате там вр в date и LastLogoff возмона в Date.UTC(year, month[, day[, hour[, minute[, second[, millisecond]]]]]))
 
см: https://social.technet.microsoft.com/wiki/contents/articles/8077.active-directory-ldap-ru-ru.aspx
_________________
Добавлено:

Цитата:
надо просто отключить всякое закрытие локального сеанса.
НИКОГДА ТАК НЕ ДЕЛАЙТЕ! Систеема должна выгружать не активные сеансы дабы норм работали процессы баз данных иначе вам придется перегружать сервак раз-2 в день!

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 13:48 20-08-2019 | Исправлено: YNY, 15:15 20-08-2019
caspara



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YNY
Спасибо за помощь. Так случилось, что написав ЛДАП запросы в оснастке и скрипты в повершелле для домена, у нас забрали права областных админов домена, что привело практически к бесполезности моей работы.  
Но как доберусь до рабочего пк, хоть сюда выложу рабочие скрипты повершелла.
В оснастке осталось только запросы на 5 неудачных паролей, а повершелл фильтровал по локедюзерс, кажется. Еще раз спасибо.

Всего записей: 466 | Зарегистр. 04-08-2004 | Отправлено: 19:55 02-09-2019
us0r



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени.
 
Есть такая штука:
 

Код:
wmic path Win32_NetworkAdapter WHERE "AdapterType like '%802%' AND PNPDeviceID like '%PCI%'"

При запуске выдаёт нужную инфу (параметры сетевого адаптера).
 
В батнике оформил это так:

Код:
 
@echo off
cls
for /f %%i in ('wmic path Win32_NetworkAdapter WHERE ^"AdapterType like ^'^%^%802^%^%^' AND PNPDeviceID like ^'^%^%PCI^%^%^'^" ^| find /I "NetConnectionID"') do (
echo %%i)
 

 
При запуске батника, на выходе, выдаёт следующее:

Код:
 
No Instance(s) Available.
ECHO is off.
ECHO is off.
 
 

 
Батник запускаю от имени админа. CMD тоже от имени админа запущена.
 
Интернеты лазил, ничего дельного. Подозреваю, что запрос составлен неправильно, но что не так - непонятно.

Всего записей: 389 | Зарегистр. 06-12-2007 | Отправлено: 14:10 28-10-2019
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
us0r А всё не правильно. Почитай, что дает на выходе команда find . В команде FOR /F ты должен парсить в переменные по какому-то критерию результат от wmic и затем в do ( )  обработать.  
Что ты хочешь получить на выходе ? Приведи пример. А еще лучше озвучь всю свою  задачу целиком.
 


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 10809 | Зарегистр. 10-12-2003 | Отправлено: 15:45 28-10-2019 | Исправлено: ipmanyak, 15:50 28-10-2019
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
us0r
Как то так

Код:
@ECHO OFF
set NETWORK=
for /f "tokens=2 delims==" %%a in ('WMIC PATH Win32_NetworkAdapter WHERE ^"AdapterType like ^'%%802%%^' AND PNPDeviceID like ^'PCI^'^" GET NetConnectionID /VALUE') do set NETWORK=%%a
echo %NETWORK%
 
pause
exit

Всего записей: 768 | Зарегистр. 29-08-2005 | Отправлено: 16:24 28-10-2019
us0r



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ipmanyak
В данном случае, в for попадает результат вывода

Код:
wmic path Win32_NetworkAdapter WHERE "AdapterType like '%802%' AND PNPDeviceID like '%PCI%'"

который был, по конвееру, передан в find для вычленения одной строки, и вот конечный результат всего этого присваивается переменной. Но проблема здесь далеко не в find и присвоении результата. Проблема здесь в WQL-запросе, о чём недвусмысленно намекает вывод.
 
alexnov66
Скопировал, вставил. Запустил.

Код:
No Instance(s) Available.
ECHO is off.
Press any key to continue . . .

 
Может в системе что-то не установлено?

Всего записей: 389 | Зарегистр. 06-12-2007 | Отправлено: 18:24 29-10-2019
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в варианте alexnov66 надо и PCI в проценты сделать
Подробнее...

----------
Мы все умрём. (-:

Всего записей: 3508 | Зарегистр. 23-04-2009 | Отправлено: 18:41 29-10-2019
vklp

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прорекламирую свою платформу для скриптов:
https://github.com/vikilpet/Taskopy/blob/master/readme_ru.md
Там внизу есть примеры.
 
Вытаскивание адаптера как в этом посте:
http://forum.ru-board.com/topic.cgi?forum=8&topic=41227&start=340#14
будет как-то так:
 

Код:
 
def wmic_adapter_demo():
    out = app_start('wmic', 'path Win32_NetworkAdapter', capture_output=True)[1]
    print(re_find(out, r'.+?802.+?PCI\\')[0])
 

Всего записей: 113 | Зарегистр. 21-02-2019 | Отправлено: 13:24 10-02-2020
likbez



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
долго искали решение, но так и не нашлось:
имеется локальная сеть с обычными стационарными компьютерами и ноутбуками (более 30 единиц, установленных на протяжении 10 лет - XP, Vista, Win10Pro, Win10Home = потому что всё только лицензионное) + server 2008 standard DC и DHCP + NAS с SMB1 + несколько виртуальных под VMWARE WS (хост - Win10Pro) + несколько виртуальных (CentOS и т.п.) под ESXI.
часть физических машин в АД, часть - нет.
плавающая, но ежедневная проблема:  
в "Сети" отображаются периодически некоторые компьютеры. из некоторых на некоторые нельзя зайти, а через пару минут уже можно. на некоторые "невидимые" можно зайти через адресную строку \\computer025\ , а на другие выдает ошибку "не найден сетевой путь", но тогда удается зайти через \\192.168.0.25\, но часто и так выдает "нет доступа". В этой проблеме не прослеживаются закономерности, доступ пропадает и появляется хаотически.
 
найденные на форумах "умные" инструкции, конечно же, не работают:
типа включить старый SMB в компонентах, включить через NETBios в WINS, отключить и удалить лицензионный корпоративный антивирус, добавить в регистр ключи типа,  
"SMB1"=dword:00000000  
в [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters]
 
SmbDeviceEnabled тип dword, значение 1
в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters  
 
"NodeType"=dword:00000001  
в [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]  
 
и т.п. Добавление таких ключей только уменьшает количество видимых и доступных расшаренных ресурсов.
при этом ping проходит во всех направлениях.
 
теперь вопрос: как этот зоопарк автоматизировать (кроме апгрейда ВСЕХ до Win10)?
важно чтобы КАЖДЫЙ пользователь рабочей станции имел возможность чтения расшаренных папок с КАЖДОЙ другой рабочей станции независимо от AD.

Всего записей: 986 | Зарегистр. 10-05-2002 | Отправлено: 17:41 18-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
likbez

Цитата:
важно чтобы КАЖДЫЙ пользователь рабочей станции имел возможность чтения расшаренных папок с КАЖДОЙ другой рабочей станции независимо от AD.

 
Тогда сами трахайтесь, или ищите таких же оригинальных "братьев по разуму"
Майки уже 20 лет назад поняли, какую ошибку сделали подсадив народец на папку "сеть" и её содержимое.
 
Это давно не поддерживается, в пользу клиент-серверной архитектуры (файловых серверов).
Оставьте ту гнилую мысль и купите NAS.
     И даже с ним придётся потрахаться, в силу вашего зоопарка.

Всего записей: 14931 | Зарегистр. 14-10-2001 | Отправлено: 18:32 18-02-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru