Всем привет!
Столкнулись как-то с ситуацией, когда 1 января у многих пользователей истёк срок действия учётной записи и они были заблокированы. Соответственно не смогли работать, шквал телефонных звонков, начиная с утра 1-го числа. Было принято решение заранее предупреждать пользователей об истечении пароля и действия учётной записи по почте. С копией списка предупреждённых пользователей администратору.
Скрипты реализации под катом.
Читать полностью »
Рубрика «powershell» - 22
Предупреждение пользователей об истечении пароля и действия учётной записи
2013-12-05 в 9:51, admin, рубрики: powershell, пароль, системное администрирование, учетная запись, метки: пароль, учетная записьУправление правами доступа к WMI через Puppet
2013-11-30 в 20:19, admin, рубрики: linux, opsview, powershell, puppet, ruby, WMI, автоматизация, Серверное администрирование, системное администрирование, метки: monitoring, opsview, powershell, puppet, ruby, WMI, автоматизация
В качестве предисловия
Основной задачей моей работы является поддержка парка железных и vm хостов — уже под 200 (а приходил было менше 100, эх, время бежит...) Поддерживаю все железо, а также сеть. Также на мне весь мониторинг (используем Opsview — сделан на ядре nagios), аггрегация логов (я внедрил Logstash, обалденное opensource решение за место ну ооочень дорогого Splunk), configuration management (puppet), бекапы, поддержка баз данных и прочих систем тоже на мне (MongoDB, MySQL, Redis, ElasticSearch, etc). В общем — все самое интересное). Стоит отметить что у нас достаточно тонкая грань между поддержкой и разработкой, и разработчики часто говорят что они хотят, а я уже занимаюсь внедрением. Хочется рассказать обо всем что происходит интересного и какие технологии удается использовать. Какие прижились, а какие по каким-то причинам нет.
В свободное от решения проблем время перевожу инфраструктуру на Infrastructure-as-a-code (IaaC), выбрал puppet для этого из-за неоднородности нашей инфраструктуры. В моей сети зоопарк из Windows Server 2008, Windows Server 2012, CentOS 5.5, CentOS 6.4. Ах, да, пару дедушек на 2003 — пора их на пенсию отправлять скоро…
Я уже писал о том, как я использую Puppet для автоматической настройки мониторинга в Opsvew, а сегодня хочу поговорить о том, как я в очередной раз «боролся» с гетерогенностью моей среды.
Задача
Возникла необходимость автоматизировать конфигурацию WMI на серверах Windows 2008 / 2012. Ключевой необходимостью стало добавление сервисного пользователя (назовем его «domainservice-user») в локальные группы сервера, которые разрешают удаленное использование WMI, а также доступ к Performance Counters, Performance Logs, в общем ко всему что нужно чтобы удаленно мониторить сервер. Сами группы определились достаточно быстро, оставалось найти удобный и быстрый способ это сделать. Также необходимо было дать права пользователю domainservice-user на доступ к корневым неймспейсам WMI. Так же все это должно быть частью общей концепции IaaC, что должно означать как минимум проверку текущего состояния, и пропускать выполнение если пользователь уже добавлен куда нужно в любом варианте присутствия-отсутствия пользователя в группах. Т.е. решение должно быть максимально автоматизированным, а точнее полностью. После небольшого гугления стало ясно что для моего случая нужно, а мне предстояло:
Читать полностью »
Решение проблемы звука в одно ухо у некоторых роликов на Youtube
2013-11-12 в 14:28, admin, рубрики: Audio, naudio, powershell, YouTube, ненормальное программирование, метки: Audio, naudio, powershell, youtubeСтолкнулся с проблемой: при просмотре некоторых роликов на youtube звук идет только на левый спикер. При прослушивании через наушники это доставляет некоторые неудобства. Существует простое и достаточно эффективное решение: вставить коннектор в гнездо не полностью. Но это решение не подошло и пришлось искать другое.
Предлагаю решение проблемы для Windows 7 с использованием powershell и библиотеки для работы со звуком NAudio:
Читать полностью »
Как проимпортировать неимпортируемое
2013-10-27 в 22:58, admin, рубрики: powershell, Серверное администрированиеПроблема, идея, и решение
Здравствуйте, дорогие мои детишечки. Спешу сообщить вам, что в мою голову пришла еще одна идея, которая вылилась вот в эту заметку. Идея, собственно говоря, пришла из проблемы, которую подкинула горячо мной любимая и уважаемая компания Microsoft и их новый продукт Windows Server 2012 R2. И тут я нисколько не иронизирую, мне они действительно нравятся. Но начнем по порядку.
Прежде всего отмечу, что я, кроме всего прочего еще и тренер по всякого рода продуктам Microsoft, и соответственно имею доступ к определенным плюшкам в виде готовых виртуальных машин для подготовки к курсам, в рамках учебного центра. И вот, собственно, решил я попробовать погонять новый сервер, ну и, как водится, развернуть на нем виртуалочки от одного курса. Выкачал эти машины, все подготовил, распаковал. И тут меня поджидало ужасное. Они категорически отказывались импортироваться. Читать полностью »
PowerShell: расширение оболочки на примере Windows Shell Libraries
2013-10-20 в 15:04, admin, рубрики: .net, c++, powershell, WinAPI, windows, метки: .net, c++, c++ cli, powershell, WinAPI, windowsВ данной планируемой статье из нескольких частей я попытаюсь рассказать о PowerShell и о том, как написать расширение для этой оболочки. Мы применим несколько технологий:
- вспомним, что огромная часть Windows API реализована COM-объектами;
- вспомним про C++/CLI, который поможет нам связать unmanaged- и manager-миры;
- и наконец напишем расширение (.NET Framework 4.5, C#).
И начну я с небольшого введения, прочитав которое, вы сможете понять, о чём всё-таки идёт речь, если вы вдруг что-то запамятовали.Читать полностью »
Процедура блокировки учетных записей пользователей
2013-09-30 в 8:38, admin, рубрики: account, ActiveDirectory, powershell, системное администрирование, метки: account, ActiveDirectory, exchange, powershell Данный скрипт ни что иное, как процедура блокировки пользователя, попрощавшегося с компанией.
Допустим у нас в компании согласована следующая процедура действий при увольнении сотрудника:
— Аккаунт пользователя необходимо блокировать вместе с почтовым ящиком.
— Всю почту сотрудника необходимо выгружать в pst файл в какой-нибудь файловый архив.
— Необходимо предотвратить любую возможносмть удаленного доступа к коропративной сети.
— Заблокированные аккаунты необходимо перемещать из продакшн контейнера в какой-нибудь отстойник для последующего удаления через какое-то время.
Вот всем этим и займемся…
Читать полностью »
Как я сайт на powershell парсил
2013-09-23 в 19:43, admin, рубрики: powershell, powershell v3, windows, метки: powershell v3Предисловие
Прежде всего хочу отметить, я не программист. Я админ, пока. Хотелось бы конечно зваться архитектором, но в обозримом пространстве подходящих вакансий, с адекватными требованиями, а главное, зарплатами за эти требования нет. А жаль.
Собственно говоря, в рамках этой заметки хочу рассказать о полезных плюшках новой версии Powershell. В частности, о возможности быстро и уверенно парсить веб-странички и делать это «параллельно».
Читать полностью »
Упрощаем жизнь администратору, ассоциируем имя пользователя и имя компьютера в автоматическом режиме в каталоге AD
2013-09-06 в 13:06, admin, рубрики: ActiveDirectory, ldap, powershell, vbscript, windows, Алгоритмы, все любят котиков, системное администрирование, системное администрирование windows, метки: ActiveDirectory, ldap, powershell, vbscript, все любят котиков, системное администрирование, системное администрирование windows Добрый день!
Наверное, у всех системных администраторов была проблема определения имени компьютера пользователя. То есть мы знаем имя сотрудника, но какой у него компьютер, без понятия. И, зачастую, попытка заставить пользователя определить имя компьютера вызывает мучение. Они вместо этого называют имя пользователя, mail, номер телефона, все что угодно, только не имя компьютера. А попытка объяснить пользователю где находится информация о системе вызывает баттхерт сотрудника и лютую ненависть. Можно, конечно, было бы написать какую-нибудь утилитку, позволяющая отображать имя компьютера на рабочем столе или где-нибудь еще на видном месте, но для этого надо каждый раз объяснять где находится эта информация. Немного упрощает задачу, но не решает ее полностью. Тем более что я склоняюсь к тому, что пользователю и во все положено не знать имя компьютера, на котором он сидит. В результате было решено сделать определение имени компьютера современным, удобным, правильным и, главное, автоматическим.
Примерно так может выглядеть подключение к компьютеру. При чем оснастку даже не обязательно открывать с помощью административной учетной записи. Для тех, кому интересно как все это работает и как это сделать в вашей инфраструктуре, добро пожаловать под кат.
Для выполнения описанного, вы должны понимать что такое AD, понимать хотя бы примерно структуру объектов в AD, понимать работу скриптов, а также любить котиков.
Читать полностью »
Создание персональных папок для пользователей домена
2013-08-07 в 10:16, admin, рубрики: acl, creation, powershell, системное администрирование, метки: acl, creation, powershellПростенький скрипт, точнее две его разновидности, для случая, когда необходимо создать папки для ряда пользователей на файловом сервере при условии, что названия папок будут совпадать с именами пользователей и эти пользователи будут иметь определенный уровень доступа к этим (своим) папкам. Все это может создаваться внутри определенной папки непосредственно на сервере или через сеть в общей папке по UNC пути.
Первый пример использует дополнительный модуль ActiveDirectory и предназначен для случая, когда пользователи находятся в каком-либо OU в AD:
Поддержка чистой шары для обмена файлами с помощью Powershell
2013-07-11 в 18:34, admin, рубрики: powershell, Песочница, метки: powershellВ каждой организации есть сетевой ресурс для обмена данными между пользователями, в который доступ имеют все. Что делать, когда пользователи сами не удаляют временные файлы из своих папок в «обмене» и ресурс начинает занимать слишком много места?
Задача:
1) Автоматическое очищение папок пользователей на общем сетевом ресурсе с сохранением структуры каталогов до 1 уровня. В корне ресурса расположены папки по фамилиям пользователей.
2) Сохранение данных за прошедший день в папке «Вчера» (права пользователей «только чтение»). Это нужно на случай, если пользователь забыл забрать важный документ вчера.
3) Логирование ошибок копирования файлов. Для анализа.
4) Возможность быстро перенастроить скрипт для использования на другом серверпапке.
Исходные данные:
1) Сетевая папка «Обмен» на //server/obmen, которая смотрит на D:obmen
Решение:
Читать полностью »