Все потоки
Поиск
Написать публикацию
Обновить
2.13

PowerShell *

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

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

Teamviewer, powershell и циска

Время на прочтение4 мин
Количество просмотров34K
Поставили мне тут задачку прикрыть доступ посредством софтины Teamviewer к нашей сети извне. Предыстория вопроса немного грустная – исторически сложилось, что таким образом программер-подрядчик удалённо подключался к серверу с базами 1С. Да, всё неправильно и сложно, и попытки что-то изменить как технически, так и организационно, натыкались на противодействие бухгалтерии. Но речь не об этом, а о блокировке этого самого Teamviewer’а.

Первым делом я, конечно, полез в поиск. Нашел пару десятков топиков с обсуждением данного вопроса, посмотрел, как народ блочит эту софтину с переменным успехом. Проблема в том, что серверов, к которым она коннектится, ну очень уж много, пропустить что-то легко, и в комментах к спискам найденных диапазонов люди часто жаловались, что у них это решение не работает.



Ну что ж, ставим рядом два компа, устанавливаем на них Teamviewer’ские программулины – чтобы вживую сразу видеть, получается или нет.
Читать дальше →

Актуализируем учетные данные Active Directory

Время на прочтение10 мин
Количество просмотров83K
Многие помнят то чувство, когда компания расширяется до тех размеров, когда рабочих групп недостаточно, и поднимается первый домен Active Directory: «О, уж теперь-то все будет как следует!» Ан нет, домен потихонечку разрастается, создаются новые учетки, блокируются старые, добавляются, удаляются компьютеры, девушки выходят замуж, меняют фамилии и, в конце концов, база данных службы каталогов выглядит, как полный швах. В этом топике мы наладим связь между базой Active Directory и кадровой системой предприятия, а также создадим механизм для поддержания данных сотрудников в AD в актуальном состоянии.
С чего начать?

Ошибка 80040154 при работе с WebAdministration

Время на прочтение3 мин
Количество просмотров3.3K
Мне нравится время от времени писать на PowerShell. В основном это задачи администрирования и развертывания. В этой заметке я хочу рассказать о решении одной интересной проблемы связанной с работой модуля WebAdministration. Итак, суть проблемы: при выполнении любого командлета из этого модуля возникает ошибка:

Cannot retrieve the dynamic parameters for the cmdlet.
Retrieving the COM class factory for component with CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} failed due to the following error: 80040154.
Читать дальше →

HelpDesk под колпаком. Аудит создания учетных записей пользователей в AD

Время на прочтение4 мин
Количество просмотров19K
Всех приветствую.

Еще только в начале своего познания профессии системного администратора мой начальник поведал мне о такой профессии (вернее ее направлении) как дизайнер AD. Эти люди наводят порядок в домене и приводят в порядок учетные записи. Кто с этим сталкивался и возился может понять то раздражение, которое вызывают корявые имена учетных записей, созданных каким-нибудь сотрудником, который чихал на твой порядок.
Взяв в руки PowerShell мы дали им бой!
Читать дальше →

Меняем цвета в PowerShell

Время на прочтение3 мин
Количество просмотров24K
Совершено недавно открыл для себя эту оболочку. Тут же полез искать книги, которые, кстати, уже перевели и их можно взять отсюда. И все вроде бы хорошо, и код пишется легко и интеграция с vsb-скиптами, но, почему то, тянет меня к мастдайным окнам.

И так, было решено перекрасить окошко PowerShell в стандартный цвет cmd и параллельно настроить автозапуск собственных функций и алиасов. Так же, слегка, напрягало предложения ввода с надписью — PS, которое, совместно с цветом, напоминает лого Adobe Photoshop ( Ничего против Adobe не имею ).

Итак, информация следом исключительно для новичков.
Читать дальше →

Инвентаризация компьютеров в домене. Лень-двигатель прогресса

Время на прочтение5 мин
Количество просмотров94K
Всех приветствую.
Недавно начальство попросило меня подумать над вопросом о сборе информации о комплектации компьютеров у нас в домене. Сначала просьба была только на счет процессоров памяти и жестких дисков. Первая мысль — хождение по отделам и просьба освободить компьютер на минутку. В случае с 1 компьютером не сложно, но если их 1500. Мысли были направленны в сторону PowerShell.
Читать дальше →

Использование PowerShell для администрирования Microsoft SQL Server

Время на прочтение3 мин
Количество просмотров32K
В одном посте невозможно описать все возможности, появившиеся после введения поддержки Window Powershell в Microsoft SQL Server, однако этим постом я постараюсь показать хотя бы часть этих возможностей. В состав SQL Server, начиная с версии SQL Server 2008, входят две оснастки:
  1. Поставщик (Provider) SQL Server, предоставляющий простой механизм навигации – «внутри» SQL Server, можно использовать команды dir, ls, cd, Set-Location, Get-Location и т.д.;
  2. Набор командлетов для указания действий SQL Server (например, выполнение скрипта sqlcmd).

Таким образом, сейчас, вы можете без применения стороннего ПО получать в своих скриптах на PowerShell всю необходимую информацию с SQL Server.

Чем это может быть полезно для администратора?

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

PowerShell: машина vs человек

Время на прочтение2 мин
Количество просмотров4.2K
Некоторое время назад мне досталась по наследству ферма терминальных серверов. И руководство поставило мне задачу — искоренить skype, chrome, firefox и mail.ru агентов на всех терминальных серверах. Исторически сложилось так, что в компании используются тонкие клиенты и лишь у привилегированных пользователях есть полноценный ПК, и там разрешены вышеперечисленные программы, а на терминалах — ни-ни.

image

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

Особенности национальной автоматизации MS Excel

Время на прочтение6 мин
Количество просмотров15K
Ни для кого не секрет, что существуют программы, которые прекрасно работают с английской «культурой» и начинают «глючить», когда дело касается национальных «культур». При ближайшем рассмотрении выяснилось, что офисная программа MS Excel как раз из этого числа. Как обойти некоторые «особенности» MS Excel и пойдёт речь в этой статье.
Читать дальше →

PowerShell и аудит безопасности

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

PowerShell и аудит безопасности



Приветствую хабранарод! Хочу поделится с вами способом, который может облегчить рутинные будни системного администрирования Win системы, с помощью PowerShell.
В один прекрасный день передо мной встала задача повседневного отслеживания активности пользователей, которые используют сервер терминалов в качестве рабочих станций. Думаю я выражу не только свое мнение, сказав что «Просмотр событий» входящий в состав средств администрирования Windows, является не самым удобным средством отслеживания ситуации на сервере. Да там есть фильтр, по которому можно отсеивать только интересующие нас события, но нет удобного способа который меняет формат отображения данной информации. В результате чего и появилась идея с помощью PowerShell осуществлять парсинг событий журнала безопасности.
Читать дальше →

Настройка виндового веб-сервера без RDP

Время на прочтение4 мин
Количество просмотров5.1K
Совсем недавно понадобилось настроить очередной веб-сервер. Как раз в это время у меня было весеннее обострение PowerShell. В общем, в качестве небольшой разминки, я решил настроить веб-сервер без RDP.
Читать дальше →

Как же все-таки пользоваться PowerShell?

Время на прочтение3 мин
Количество просмотров43K
Навеяно q&a: Как воспроизвести mp3 из командной строки в Windows 7?

Немного шокирован предлагаемыми ответами, которые сводятся к 'скачать и установить дополнительное ПО'… и так в системе уже под 20Гб какого то говна чего то полезного, которое зовется операционной системой… извиняюсь, вырвалось.

Когда то в Windows XP использовал для этой задачи простейшую утилиту mplay, хоть и GUI но планировщиком задач нормально запускается, но в Windows 7 удалили его и даже sndrec32. Запускать монстроуозный wmplayer считаю глупостью, поэтому приходится обращаться к скриптовым языкам.

Примеры однострочных скриптов на vbs для windows scripting host можно нарыть в интернете, вот простейший пример:
Set oVoice = CreateObject("SAPI.SpVoice")
set oSpFileStream = CreateObject("SAPI.SpFileStream")
oSpFileStream.Open "c:\Windows\Media\tada.wav"
oVoice.SpeakStream oSpFileStream
oSpFileStream.Close

Кстати, это чудо, что код заработал на windows 7, так как по сравнению с windows xp ряд activex объектов исчезло (типа WMPlayerClass) и никто не знает, когда исчезнет или как изменится класс SAPI, да и не дело это, микроскопом гвозди забивать. Поэтому это решение считаю неправильным и не логичным, да и отмирает ActiveX потихоньку, вполне логично убиваемый .NET окружением.
Попробуем решить задачу с помощью PowerShell

Run as administrator из командной строки

Время на прочтение2 мин
Количество просмотров195K
Вчера я некоторое время потратил на то, чтобы запустить скрипт из командной строки от имени администратора. Мне нужен был эквивалент right-click > «Run as administrator»:


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

Ближайшие события

Первые шаги для пауэршельшиков

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров467K
Привет всем из 2023 года!
Я написал эту статью 12 лет назад. И внезапно — это — моя самая популярная статья. Я так же удивился что люди до сих пор заходят сюда и читают эту статью. Поэтому я решил её обновить. И после прочтения понял, что обновлять ничего не буду.

Да, powershell обновился за последние годы. Теперь он стал Powershell Core, и его можно запускать как на Windows, так и на Linux и MacOS. В скриптах появилось много плюшек, но основная идея осталась той же.

Если вы только начинаете писать на Powershell эта статья для вас. Вам будут даны основные понятия, которые относятся к Powershell в 2023 году, и которые позволят вам погрузиться в эту оболочку с головой.


Приди ко мне брате в Консоль!
— Админ Долгорукий.

Много ярлыков улетело в корзину со времён выхода в свет 2008 Windows. Люди попроще дивились новому синему окошку, которое ребята из Майкрософт зачем-то вставили в свои новые продукты. Люди, которые сидят на блогах и знают программирование начали изучать это окошко.



В итоге к народу начало приходить осознание того, что Майкрософт действительно разработали что-то новое и интересное.
И так, зачем вам это нужно? В основном, программа под названием PowerShell (в дальнейшем PS) предназначена для администраторов и программистов. Она позволяет автоматизировать примерно 99% всех действий в системе. С помощью неё вы можете настраивать удалённые компьютеры, запускать и перезапускать сервисы и производить обслуживание большиства серверных приложений. Как выяснилось, возможности у программы потрясающие.

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

Задача этой статьи проста — показать вам малую долю возможностей PS и дать вам концептуальное понимание предмета. В действительности документации по предмету написано несметное количество, так что я не стремлюсь охватить всё. Я так же ознакомлю вас с набором утилит, которые позволят не вылезать из PS в принципе.

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

Замена для FIND и GREP

Время на прочтение4 мин
Количество просмотров39K
Мне кажется, давно зреет тема сравнения возможностей PowerShell и оболочек мира UNIX. Сравнения не в холиварном смысле этого слова, а в позитивно-конструктивном. Линуксовым скриптописателям (не фанатикам), думаю, будет интересно узнать, как делаются те или иные штуки, которые они привыкли делать на bash или zsh, на PowerShell. Пожалуй, я и начну такую тему — и очень надеюсь, что кто-то из моих коллег-повершелловцев (Guderian, ApeCoder) также поддержит эту тему.

В UNIX для поиска текста в дереве файлов существует довольно популярная связка утилит find и grep. Например, с помощью этих утилит мы можем найти все упоминания ключевого слова class в нашем дереве исходников:

$ find -name \*.cpp -o -name \*.hpp -exec grep -Hb class {} \;

Давайте посмотрим, что предлагает нам PowerShell для этих целей.
Читать дальше →

Подкуем хаос

Время на прочтение1 мин
Количество просмотров1.4K
Небольшое изменение скрипта XaosCPS для получения кармы.

$user = ([xml](new-object system.net.WebClient -prop @{encoding=[System.Text.Encoding]::UTF8}).DownloadString("http://habrahabr.ru/api/profile/XaocCPS")).habrauser
Write-Host "$($user.login) - карма: $($user.karma), рейтинг: $($user.rating)"


Просто чтобы проиллюстрировать как можно еще:
  • Инциализируем свойство encoding прямо в параметрах вызова New-Object. Обратите внимание, что название параметра -properties писать полностью необязательно, главное, чтобы не было другого параметра, начинающегося с тех же букв
  • Приведение к типу XML осуществляется при помощи строки [xml] перед выражением, а не перед переменной — просто чтобы сразу добраться до нужных данных, а не повторять потом путь каждый раз
  • Форматирование при помощи вставки подвыражений в строку — таким образом у нас есть примитивный шаблонный дивижок в PowerShell прямо из коробки

Отправка запросов HTTP POST из PowerShell

Время на прочтение2 мин
Количество просмотров22K
Прочитав топик Цитаты из forismatic.com в консоли (или fortune своими руками) из любопытства захотелось повторить тоже самое на PowerShell. Вот что получилось
function get-random-quote()
{
    $apiUrl = 'http://www.forismatic.com/api/1.0/'
    $client = new-object System.Net.WebClient
    $client.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
    $client.Encoding = [System.Text.Encoding]::UTF8
    [xml]$quote = $client.UploadString($apiUrl, 'method=getQuote&format=xml' )
    $quote.forismatic.quote
}


Ниже пояснения и пример использования
Читать дальше →

Сортировка изображений по разрешению… на сцене PowerShell

Время на прочтение9 мин
Количество просмотров8.9K
В очередной раз просматривая интересности, любопытности и прочие всякости на Хабре, натолкнулся на статью о том, как с помощью Питона навести порядок среди иллюстраций, цифровое кладбище которых имеется почти у каждого из нас. Поскольку не так давно мне выпала доля заниматься процессингом картинок с использованием PowerShell, я решил провести показательное сравнение. Показательное с той точки зрения, чтобы продемонстрировать некоторые характерные возможности PowerShell тем, кто еще пока не знаком с ним или знаком поверхностно.

К сожалению, с PowerShell сложилась странная ситуация, когда весьма мощный инструмент оказывается обойден вниманием общественности и определенно нуждается в некоторой популяризации. Тем более, что с недавнего времени он входит в составе Windows 7 и скоро будет на рабочих местах немалого количества пользователей. А тут такой повод в виде лаконичной с одной стороны, но интересной с другой задачи административного характера по наведению порядка в хранилищах информации. Итак, приступим.

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

PowerShell и Habrahabr API

Время на прочтение1 мин
Количество просмотров1.4K
Немного улучшил свой скрипт для PowerShell, который работает с HabraAPI. Решил поделиться с подписчиками блога, может кому-нибудь будет интересно:

[xml]$str = [System.Text.Encoding]::UTF8.GetString((new-object system.net.WebClient).DownloadData("http://habrahabr.ru/api/profile/XaocCPS"))
Write-Host $str.habrauser.login '- карма:' $str.habrauser.karma ', рейтинг:' $str.habrauser.rating

Горячие клавиши в консоли cmd.exe

Время на прочтение1 мин
Количество просмотров15K
Недавно я узнал одну вещь, которая меня просто потрясла. После многих лет постоянного использования консоли я и подумать не мог, что она ещё способна кого-то удивить.

Казалось бы, всё уже давно известно:
  • Вводишь команду — получаешь результат.
  • Историю команд можно листать клавишами вверх\вниз.
  • Клавиша Tab циклично вставляет имена файлов из текущий директории, или дополняет их по введённым буквам.
Что ещё может это примитивное чёрное окошко?

А оказывается, кроме стрелок у него есть ещё несколько полезных горячих клавиш. И что самое интересное, некоторые из них выводят диалоговые окна. Вот это и стало настоящим сюрпризом.

image

И так, по порядку