Как стать автором
Обновить
2.67

PowerShell *

Расширяемое средство автоматизации от Microsoft

Сначала показывать
Порог рейтинга
Уровень сложности

How to get Security Log with non-administrative user

Время на прочтение4 мин
Количество просмотров18K


Привет Хабр! Читайте под катом как получить доступ к логу безопасности Windows без прав администратора. Эта будет не первая статья на Хабре связанная с логами Windows и наверно не самая оригинальная, но на мой взгляд я потратил слишком много времени на поиск простого решения для чтения логов обычным пользователем, вот я и решил поделиться «историей своего успеха».

Также пришлось сравнить скорость работы Powershell командлетов Get-WinEvent и Get-EventLog.

Все что находится под катом актуально для Windows Server 2008R2/2012R2, Windows 10 Pro (1809), на других версиях я не проверял, думаю что с продуктами 2016 и 2019 годов ситуация аналогичная.
Читать дальше →

Создание и обновление списков рассылки в Zimbra Collaboration OSE на основе групп и пользователей Active Directory

Время на прочтение10 мин
Количество просмотров12K
image

1. Пара слов от автора


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

В комментариях к прошлой статье мне задали интересный вопрос об автоматическом формировании списков рассылки на основе групп безопасности AD. Есть задача – есть решение. Итак, поехали.

2. Исходные данные


ОС сервера: CentOS 7

По поводу ОС
На самом деле разница между CentOS7 и любой другой системой будет заключаться исключительно в командах серверу на установку пакетов, и, возможно, расположении некоторых файлов. Работа ведется в основном с командлетами Zimbra, так что отличия настройки будут минимальны.

Домен Zimbra: zimbramail.home.local
Путь монтирования шары на хосте Zimbra: /mnt/ZM/

3. Настройка


  1. Монтируем шару Windows к нашему Linux серверу. Это нужно для упрощения и автоматизации передачи данных из Windows PowerShell в Linux Bash. Процедура монтирования была описана в предыдущей статье. Не буду повторяться.
  2. Создаем в AD отдельное OU, в котором создаем группы, на основе которых будут созданы списки рассылки в Zimbra. Имя группы = имя списка рассылки.
  3. Добавляем в группы, созданные в новом OU, пользователей или группы безопасности, на основе которых будут наполняться списки рассылки в Zimbra. Скрипт отрабатывает рекурсивно, что значит, что он соберет все данные о пользователях, состоящих в группах, которые добавлены в группы в целевом OU. Подробнее о выводе команды Get-ADGroupMember.
  4. Создаем скрипт сбора данных из Active Directory.
  5. Создаем скрипт добавления листов рассылки и их наполнения пользователями на основе полученных данных в предыдущем скрипте.
  6. Наслаждаемся.

Читать дальше →

Языки программирования: PowerShell захватывает всё больше разработчиков под Linux, macOS и Windows

Время на прочтение3 мин
Количество просмотров25K


Публикация компанией Microsoft исходников скриптового языка PowerShell вызывает отклик у всё большего числа разработчиков. По-видимому, это недавнее решение Microsoft начинает окупаться. В индексе TIOBE (The Importance Of Being Earnest) он появился в топ-50 самых популярных языков программирования.

Microsoft опубликовала исходники своего 12-летнего скриптового языка три года назад как часть своего подхода к совместимости операционных систем.

Дебют PowerShell на Linux и macOS в 2016-м году состоялся после того, как генеральный директор Microsoft Сатья Наделла (Satya Nadella) сказал, что «Microsoft любит Linux», а его предшественник Стив Балмер (Steve Ballmer), что вообще-то Linux — это не злокачественная опухоль.

Читать дальше →

Основы PowerShell: определение конца строки с определенным символом

Время на прочтение1 мин
Количество просмотров7.9K

Знаете ли вы, что можно определить, заканчивается ли строка определенным символом или начинается с него в PowerShell? Томас Рейнер (Thomas Rayner) ранее поделился на CANITPRO.NET, как это легко сделать с помощью регулярных выражений (regular expressions) или, проще говоря, Regex.


Читать дальше →

Массовая печать в Windows

Время на прочтение6 мин
Количество просмотров47K
Иногда нужно быстро распечатать много картинок с котиками документов, а открывать для этого каждый файл совсем не хочется. Первым делом напрашивается использование контекстного меню проводника, но у этого способа есть свои ограничения и нюансы. Поэтому пришлось искать альтернативу. За подробностями — прошу под кат.
Читать дальше →

Как не продолбать пароли в Python скриптах

Время на прочтение4 мин
Количество просмотров70K


Хранение паролей всегда было головной болью. В классическом варианте у вас есть пользователь, который очень старается не забыть жутко секретный «qwerty123» и информационная система, которая хранит хеш от этого пароля. Хорошая система еще и заботливо солит хеши, чтобы отравить жизнь нехорошим людям, которые могут украсть базу с хешированными паролями. Тут все понятно. Какие-то пароли храним в голове, а какие-то засовываем в зашифрованном виде в keepass.

Все меняется, когда мы убираем из схемы человека, который старательно вводит ключ с бумажки. При взаимодействии двух информационных систем, на клиентской стороне в любом случае должен храниться пароль в открытом для системы виде, чтобы его можно было передать и сравнить с эталонным хешем. И вот на этом этапе админы обычно открывают местный филиал велосипедостроительного завода и начинают старательно прятать, обфусцировать и закапывать секретный ключ в коде скриптов. Многие из этих вариантов не просто бесполезны, но и опасны. Я попробую предложить удобное и безопасное решение этой проблемы для python. И чуть затронем powershell.
Читать дальше →

Как объединить содержимое файлов в PowerShell. И при этом не пострадать

Время на прочтение3 мин
Количество просмотров9.9K

Что надо было сделать


Однажды мне понадобилось объединить пачку текстовых файлов, лежащих в одной директории, в один файл. Делать руками этого не хотелось и мне на помощь, как всегда, пришёл Гугл! Я много слышал о мощности такого средства, как PowerShell, и решил использовать его для этой "мегазадачи". Хотя бы потому, что с убогостью средства cmd.exe я знаком не по наслышке. Ну а делать это руками — не наш путь.

Что пошло не так

Как определить минимальный размер, необходимый для промежуточной папки репликации DFSR

Время на прочтение7 мин
Количество просмотров9.4K


[Прим. переводчика. Материал статьи относится к Windows Server 2003/2003R2/2008/2008R2, но большинство из описанного справедливо и для более поздних версий ОС]

Уоррен снова здесь. Эта статья — краткое справочное руководство о том, как правильно вычислить минимальный размер промежуточной папки, необходимый для нормальной работы DFSR. Задание меньших значений может привести к замедлению репликации или вообще к ее остановке. Имейте в виду, что это лишь минимальные значения. Принимая решение о размере промежуточной папки, помните следующее: чем больше будет размер промежуточной папки, тем лучше, вплоть до размера самой реплицируемой папки. За дополнительными сведениями о том, как важно использовать верный размер промежуточной папки, обратитесь к разделу «Как определить, есть ли у вас проблема с промежуточной папкой» и постам из блогов, ссылки на которые размещены в конце этой статьи.
Читать дальше →

Еще один способ увидеть коммуникации приложений

Время на прочтение2 мин
Количество просмотров4.8K

Добрый день, коллеги. Как известно, есть очень полезная утилита — sysmon. В двух словах, она позволяет вам собирать и "логировать" события, происходяшие в Windows. Одним из таких событий является попытка установить сетевое соединение. Таким образом, можно попытаться узнать, куда ходят ваши приложения. Для этого нам понадобятся:


  • сам sysmon
  • конфигурация к нему, я предпочитаю использовать вот эту
  • модуль PSQuickGraph module
  • и немного фантазии
Читать дальше →

Как автоматизировать создание виртуальных машин? Рассказываем подробно

Время на прочтение16 мин
Количество просмотров19K
Создание новой виртуальной машины — это рутина, отнимающая много времени. И чем больше инфраструктура и организация, тем больше процедур, связанных с этим процессом. Мы автоматизировали это процесс с помощью PowerShell.

Добро пожаловать под кат, если вам это интересно.



Читать дальше →

Еще немного про графы, или как обнаружить зависимости между вашими приложениями

Время на прочтение3 мин
Количество просмотров2.4K

Доброе время суток, коллеги. Последнее время довольно много разговоров о переносе приложений из физических инфраструктур, читай датацентров, в облако. Например в Microsoft Azure. Ну, или вообще, о любом другом переносе одного или нескольких приложений из одного места в другое. Одной из самых больших проблем в такого рода задачах является необходимость найти все внешние зависимости приложения. Имеется в виду не зависимости в коде, а зависимости от внешних, по отношению к приложению, систем. Собственно говоря, порой нам надо найти, с кем наше предложение разговаривает, и кто разговаривает с ним. Как это сделать, если у нас нет развернутой SIEM, так сказать средствами "SIEM для бедных". Собственно говоря, для систем на Windows есть следующее предложение.

Читать дальше →

Как увидеть связи внутри вашего PowerShell модуля

Время на прочтение2 мин
Количество просмотров2.6K

День добрый, коллеги. Сто лет назад где-то описывал быстрый и "грязный" способ увидеть граф вызовов внутри вашего PowerShell скрипта. Теперь, пришла, так сказать, пора, натянуть сову на глобус и посмотреть граф зависимостей внутри модуля.

Читать дальше →

PowerShell и Group Policy Preferences, когда счет принтеров на сотни

Время на прочтение22 мин
Количество просмотров12K


Много копий сломано вокруг управления сетевыми принтерами на пользовательских компьютерах. В основном администраторы разбились на два лагеря: подключение логон-скриптами (bat/vbs) и управление через GPP. У обоих подходов есть свои плюсы: скрипты быстрее обрабатываются, а GPP гибче и применяется чаще, чем пользователи перезагружают компьютеры. Но когда принтеров больше сотни и разбросаны они в нескольких десятках офисов и городов, сложности будут в обоих случаях.

Нужно не только подключить правильный набор принтеров каждому пользователю, с учетом его текущего местонахождения, но и ни про один не забыть. А если иногда перемещаются не только пользователи, но и сами принтеры…

В общем, мы с коллегами для себя выбрали GPP, в первую очередь для того, чтобы кто-то кроме ведущих администраторов мог разобраться в действующем конфиге, просто посмотрев отчет GPMC. Однако, кто скажет, что его штатный интерфейс удобен для управления 100+ устройствами — пусть первый бросит в меня камень. Кроме того, при вводе в эксплуатацию очередной партии нужно проделать много рутины по настройке сетевого сканирования и добавлению на сервер печати.

А всё, что делается больше одного раза, можно автоматизировать!

Что мы сегодня будем делать?

  • вести учет всех сетевых принтеров;
  • автоматизировать добавление принтеров в GPP (PS/XML);
  • автоматизировать добавление принтеров на принт-сервер, причем на кластерный (BAT/VBS)!

Итак, начнем.
Читать дальше →

PowerShell и Shift+Ins, или как обрести скорость Гермеса при работе с GPP

Время на прочтение5 мин
Количество просмотров6.8K


Буфер обмена и PowerShell ускорят, но не ослепят.


Использовать GPP для добавления файлов реестра жутко и неудобно — все эти ветки реестра, тип ключа, значения… Особенно если веток и значений изрядно. Но есть пара лайфхаков, которые могут значительно ускорить работу с групповыми политиками.


Можно, конечно, повесить logon-скрипт с командой импорта ветки реестра. Но это же не наш метод.

Читать дальше →

Mattermost и Powershell — огромная сила, или малая автоматизация своими силами

Время на прочтение3 мин
Количество просмотров17K
Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.

Поэтому написанное мною будет скорее полезно админам в небольших компаниях.
Читать дальше →

Некоторые особенности PowerShell при работе с учетными записями пользователей

Время на прочтение6 мин
Количество просмотров25K
Я считал, что неплохо разбираюсь в powershell, но мне никогда не приходилось работать с учетными данными пользователей. Однако сейчас я в поиске работы и на одном из собеседований мне поставили тестовое задание написать скрипт, который должен был:

  1. Проверить наличие и статус (включена/отключена) учетной записи пользователя.
  2. Проверить включена ли учетная запись в группу «Администраторы»
  3. Если учетная запись отсутствует, то создать учетную запись и добавить ее в группу администраторы, проставить флаги «Запретить смену пароля пользователем» и «Срок действия пароля не ограничен»
  4. Если учетная запись существует, но отключена либо не входит в группу «Администраторы», то включить учетную запись и добавить ее в группу «Администраторы», проставить флаги «Запретить смену пароля пользователем» и «Срок действия пароля не ограничен»
  5. Скрипт не должен зависеть от языка операционной системы.

Читать дальше →

Event Tracing for Windows на стороне зла. Но это не точно

Время на прочтение6 мин
Количество просмотров19K


В предыдущих статьях про сниффер на PowerShell и сбор данных о загрузке с удаленного сервера я уже немного писал про возможности ETW (Event Tracing for Windows). Сегодня я хочу подробнее рассказать про эту технологию.


Заодно покажу на примере разбора HTTPS и создания кейлоггера на PowerShell, как ее можно использовать во благо. Или не совсем во благо.

Читать дальше →

Azure Kubernetes Service (AKS) и PowerShell

Время на прочтение1 мин
Количество просмотров2.3K
image

Потребовалось мне как-то автоматизировать развертывание и управление кластерами Kubernetes в Azure.

Документация Microsoft предлагает для этого 2,5 способа:
Читать дальше →

Безопасность или паранойя: временные права при запуске команд

Время на прочтение4 мин
Количество просмотров11K


В прошлой статье «Меньше администраторов всем» я рассказывал о принципах работы без прав администратора ― в частности, о технологии Just Enough Administration (JEA). Этот механизм хоть и гибкий, но сложный в настройке, и в ряде ситуаций можно обойтись и без него.


Например, если в бухгалтерии используется регулярно обновляемое ПО, то совершенно не обязательно выдавать права администратора, использовать сторонние решения вроде AdminLink и тем более обновлять руками. Есть другие варианты.

Читать дальше →

Влияние маленького окошка на память пользователя, и что с этим делать

Время на прочтение6 мин
Количество просмотров17K


Еще с выходом в свет Windows Vista\2008 администраторы столкнулись с маленькой, но неприятной проблемой: оповещение об истечении срока действия пароля стало сиротливо появляться в самом неприметном углу экрана. И это вместо окна прямо по центру, как было раньше!


Отсюда и смена паролей в последний момент, под аккомпанемент отказов доступа; и негодование, почему вдруг перестал работать VPN, и что с этим делать в командировке. Конечно, не проблема года, но явление назойливое и неприятное. Поэтому разбираемся, как его одолеть.

Читать дальше →