Ни для кого не секрет, что существуют программы, которые прекрасно работают с английской «культурой» и начинают «глючить», когда дело касается национальных «культур». При ближайшем рассмотрении выяснилось, что офисная программа MS Excel как раз из этого числа. Как обойти некоторые «особенности» MS Excel и пойдёт речь в этой статье.
7.67
Рейтинг
PowerShell *
Расширяемое средство автоматизации от Microsoft
Сначала показывать
Порог рейтинга
Уровень сложности
PowerShell и аудит безопасности
8 мин
65KPowerShell и аудит безопасности
Приветствую хабранарод! Хочу поделится с вами способом, который может облегчить рутинные будни системного администрирования Win системы, с помощью PowerShell.
В один прекрасный день передо мной встала задача повседневного отслеживания активности пользователей, которые используют сервер терминалов в качестве рабочих станций. Думаю я выражу не только свое мнение, сказав что «Просмотр событий» входящий в состав средств администрирования Windows, является не самым удобным средством отслеживания ситуации на сервере. Да там есть фильтр, по которому можно отсеивать только интересующие нас события, но нет удобного способа который меняет формат отображения данной информации. В результате чего и появилась идея с помощью PowerShell осуществлять парсинг событий журнала безопасности.
+19
Настройка виндового веб-сервера без RDP
4 мин
5.1KСовсем недавно понадобилось настроить очередной веб-сервер. Как раз в это время у меня было весеннее обострение PowerShell. В общем, в качестве небольшой разминки, я решил настроить веб-сервер без RDP.
+41
Как же все-таки пользоваться PowerShell?
3 мин
42KНавеяно q&a: Как воспроизвести mp3 из командной строки в Windows 7?
Немного шокирован предлагаемыми ответами, которые сводятся к 'скачать и установить дополнительное ПО'… и так в системе уже под 20Гбкакого то говна чего то полезного, которое зовется операционной системой… извиняюсь, вырвалось.
Когда то в Windows XP использовал для этой задачи простейшую утилиту mplay, хоть и GUI но планировщиком задач нормально запускается, но в Windows 7 удалили его и даже sndrec32. Запускать монстроуозный wmplayer считаю глупостью, поэтому приходится обращаться к скриптовым языкам.
Примеры однострочных скриптов на vbs для windows scripting host можно нарыть в интернете, вот простейший пример:
Кстати, это чудо, что код заработал на windows 7, так как по сравнению с windows xp ряд activex объектов исчезло (типа WMPlayerClass) и никто не знает, когда исчезнет или как изменится класс SAPI, да и не дело это, микроскопом гвозди забивать. Поэтому это решение считаю неправильным и не логичным, да и отмирает ActiveX потихоньку, вполне логично убиваемый .NET окружением.
Немного шокирован предлагаемыми ответами, которые сводятся к 'скачать и установить дополнительное ПО'… и так в системе уже под 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 окружением.
+4
Истории
Run as administrator из командной строки
2 мин
193KВчера я некоторое время потратил на то, чтобы запустить скрипт из командной строки от имени администратора. Мне нужен был эквивалент right-click > «Run as administrator»:
+28
Первые шаги для пауэршельшиков
Простой
12 мин
447KТуториал
Привет всем из 2023 года!
Я написал эту статью 12 лет назад. И внезапно — это — моя самая популярная статья. Я так же удивился что люди до сих пор заходят сюда и читают эту статью. Поэтому я решил её обновить. И после прочтения понял, что обновлять ничего не буду.
Да, powershell обновился за последние годы. Теперь он стал Powershell Core, и его можно запускать как на Windows, так и на Linux и MacOS. В скриптах появилось много плюшек, но основная идея осталась той же.
Если вы только начинаете писать на Powershell эта статья для вас. Вам будут даны основные понятия, которые относятся к Powershell в 2023 году, и которые позволят вам погрузиться в эту оболочку с головой.
Приди ко мне брате в Консоль!
— Админ Долгорукий.
Много ярлыков улетело в корзину со времён выхода в свет 2008 Windows. Люди попроще дивились новому синему окошку, которое ребята из Майкрософт зачем-то вставили в свои новые продукты. Люди, которые сидят на блогах и знают программирование начали изучать это окошко.
В итоге к народу начало приходить осознание того, что Майкрософт действительно разработали что-то новое и интересное.
И так, зачем вам это нужно? В основном, программа под названием PowerShell (в дальнейшем PS) предназначена для администраторов и программистов. Она позволяет автоматизировать примерно 99% всех действий в системе. С помощью неё вы можете настраивать удалённые компьютеры, запускать и перезапускать сервисы и производить обслуживание большиства серверных приложений. Как выяснилось, возможности у программы потрясающие.
Конечно же, продвинутые пользователи найдут множество способов использования этого восхитительного синего окошка.
Задача этой статьи проста — показать вам малую долю возможностей PS и дать вам концептуальное понимание предмета. В действительности документации по предмету написано несметное количество, так что я не стремлюсь охватить всё. Я так же ознакомлю вас с набором утилит, которые позволят не вылезать из PS в принципе.
+183
Замена для FIND и GREP
4 мин
38KМне кажется, давно зреет тема сравнения возможностей PowerShell и оболочек мира UNIX. Сравнения не в холиварном смысле этого слова, а в позитивно-конструктивном. Линуксовым скриптописателям (не фанатикам), думаю, будет интересно узнать, как делаются те или иные штуки, которые они привыкли делать на bash или zsh, на PowerShell. Пожалуй, я и начну такую тему — и очень надеюсь, что кто-то из моих коллег-повершелловцев (Guderian, ApeCoder) также поддержит эту тему.
В UNIX для поиска текста в дереве файлов существует довольно популярная связка утилит
Давайте посмотрим, что предлагает нам PowerShell для этих целей.
В UNIX для поиска текста в дереве файлов существует довольно популярная связка утилит
find
и grep
. Например, с помощью этих утилит мы можем найти все упоминания ключевого слова class
в нашем дереве исходников:$ find -name \*.cpp -o -name \*.hpp -exec grep -Hb class {} \;
Давайте посмотрим, что предлагает нам PowerShell для этих целей.
+13
Подкуем хаос
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 прямо из коробки
-3
Отправка запросов 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
}
Ниже пояснения и пример использования
+4
Сортировка изображений по разрешению… на сцене PowerShell
9 мин
8.7KВ очередной раз просматривая интересности, любопытности и прочие всякости на Хабре, натолкнулся на статью о том, как с помощью Питона навести порядок среди иллюстраций, цифровое кладбище которых имеется почти у каждого из нас. Поскольку не так давно мне выпала доля заниматься процессингом картинок с использованием PowerShell, я решил провести показательное сравнение. Показательное с той точки зрения, чтобы продемонстрировать некоторые характерные возможности PowerShell тем, кто еще пока не знаком с ним или знаком поверхностно.
К сожалению, с PowerShell сложилась странная ситуация, когда весьма мощный инструмент оказывается обойден вниманием общественности и определенно нуждается в некоторой популяризации. Тем более, что с недавнего времени он входит в составе Windows 7 и скоро будет на рабочих местах немалого количества пользователей. А тут такой повод в виде лаконичной с одной стороны, но интересной с другой задачи административного характера по наведению порядка в хранилищах информации. Итак, приступим.
К сожалению, с PowerShell сложилась странная ситуация, когда весьма мощный инструмент оказывается обойден вниманием общественности и определенно нуждается в некоторой популяризации. Тем более, что с недавнего времени он входит в составе Windows 7 и скоро будет на рабочих местах немалого количества пользователей. А тут такой повод в виде лаконичной с одной стороны, но интересной с другой задачи административного характера по наведению порядка в хранилищах информации. Итак, приступим.
+32
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
+4
Горячие клавиши в консоли cmd.exe
1 мин
14KНедавно я узнал одну вещь, которая меня просто потрясла. После многих лет постоянного использования консоли я и подумать не мог, что она ещё способна кого-то удивить.
Казалось бы, всё уже давно известно:
А оказывается, кроме стрелок у него есть ещё несколько полезных горячих клавиш. И что самое интересное, некоторые из них выводят диалоговые окна. Вот это и стало настоящим сюрпризом.
Казалось бы, всё уже давно известно:
- Вводишь команду — получаешь результат.
- Историю команд можно листать клавишами вверх\вниз.
- Клавиша Tab циклично вставляет имена файлов из текущий директории, или дополняет их по введённым буквам.
А оказывается, кроме стрелок у него есть ещё несколько полезных горячих клавиш. И что самое интересное, некоторые из них выводят диалоговые окна. Вот это и стало настоящим сюрпризом.
+70
PowerShell 2.0 RTM доступен для всех версий Windows
3 мин
21KПеревод
Windows PowerShell — это скриптовый язык для командной строки, который спроектирован для системных администраторов и автоматизации. Построенный на платформе Microsoft .NET Framework, язык Windows PowerShell позволяет IT-профессионалам и разработчикам контролировать и автоматизировать администрирование Windows и приложений.
Под катом представлены новые функции, которые были добавлены в Windows PowerShell 2.0.
Под катом представлены новые функции, которые были добавлены в Windows PowerShell 2.0.
+21
Ближайшие события
Больше событий в календаре
Маркетинг
Другое
Больше событий в календаре
Разработка
Больше событий в календаре
Разработка
Больше событий в календаре
Разработка
Администрирование
Менеджмент
Больше событий в календаре
Разработка
Больше событий в календаре
Разработка
Менеджмент
Больше событий в календаре
Разработка
WinRM — удалённая работа с PowerShell
2 мин
67KИтак вышел Windows Management Framework для всех ОС, даже для XP.
Для меня там, кроме собственно, PowerShell 2.0, основное это WinRM. В приложении к PowerShell это просто способ выполнять команды на удалённом компе.
Вот как это сделать:
0. Поставить Windows Management Framework Core
1. Для конфигурирования winrm, на той машине, которая будет сервером:
1.1 зайти в cmd.exe (я пытался сделать это из-под ISE, но оно не работает с интерактивными консольными программами)
1.2 запустить winrm qc
1.3 ответить Y на вопрос об изменениях
2. Теперь можно в PowerShell ISE на клиентской машине нажать иконку с изображением терминала, набрать имя сервера и учетную запись, потом ввести пароль и работать с привычным ISE на удалённой машине.
А еще с помощью набора команд *-PSSession возможет такой сценарий. Зайти на удаленную машину, выполнить там длительную операцию, вернуться и сообщить пользователю, что всё сделано.
Для меня там, кроме собственно, PowerShell 2.0, основное это WinRM. В приложении к PowerShell это просто способ выполнять команды на удалённом компе.
Вот как это сделать:
0. Поставить Windows Management Framework Core
1. Для конфигурирования winrm, на той машине, которая будет сервером:
1.1 зайти в cmd.exe (я пытался сделать это из-под ISE, но оно не работает с интерактивными консольными программами)
1.2 запустить winrm qc
1.3 ответить Y на вопрос об изменениях
2. Теперь можно в PowerShell ISE на клиентской машине нажать иконку с изображением терминала, набрать имя сервера и учетную запись, потом ввести пароль и работать с привычным ISE на удалённой машине.
А еще с помощью набора команд *-PSSession возможет такой сценарий. Зайти на удаленную машину, выполнить там длительную операцию, вернуться и сообщить пользователю, что всё сделано.
+6
Visual Studio 2008 PowerShell Command Prompt
2 мин
2.5KМне нравится PowerShell, он не в пример функциональнее и более читаем чем cmd. Но вот незадача — иногда приходится открывать командную строку Visual Studio, а она не PowerShell. Выполнять же из одной консоли ls и nmake хочется.
Как вариант можно было бы взять vsvars32.bat и переписать его, но это откровенное надругательство над свободным временем и есть путь проще —
blogs.msdn.com/domgreen/archive/2009/05/03/visual-studio-command-prompt-via-powershell.aspx. Я немного изменил скрипт, подчистив из него мусор.
Как вариант можно было бы взять vsvars32.bat и переписать его, но это откровенное надругательство над свободным временем и есть путь проще —
blogs.msdn.com/domgreen/archive/2009/05/03/visual-studio-command-prompt-via-powershell.aspx. Я немного изменил скрипт, подчистив из него мусор.
+1
Windows PowerShell 2.0 RTM
1 мин
1.1KКомада разработки Windows PowerShell сообщила, что оный отправлен в производство вместе с Windows 7 и Server 2008 R2
Отдельноскачиваемый дистрибутив для других систем (Windows XP SP3, Windows Vista-SP1 и Windows Server 2008) появится в течение нескольких месяцев
Отдельноскачиваемый дистрибутив для других систем (Windows XP SP3, Windows Vista-SP1 и Windows Server 2008) появится в течение нескольких месяцев
+2
PowerShell для автоматического переключения сетевых настроек
1 мин
4.4KНекоторое время назад у моего провайдера случилась полоса глюков, связанных с перекладкой кабеля. Сейчас все нормально, но тогда пару раз в неделю отрубался инет и работник поддержки каждый раз требовал от меня подключать комп напрямую а не через рутер. Вот для быстрого изменения сетевых настроек я как раз и сделал две маленькие функции to_direct и to_router, которые я и предлагаю вашему вниманию. Они написаны не лучшим образом — так что это просто кусочки кода которые работают и которыe могут вам пригодиться, а не образец того, как писать скрипты.
+6
PowerShell: выстрелил и забыл
1 мин
10KИногда мне хочется попросить PowerShell сделать что-нибудь длительное, а потом известить меня о том что работа готова. А я пока что-нибудь другое поделаю.
Например вот так
(В качестве длительной операции «скопировать все из c:\windows\system32 на d:»)
Функция done выводит сообщение с надписью «done» причем его видно даже есои компьютер залочен.
Это достигается вот таким простеньким кусочком кода в профиле:
Например вот так
cp c:\windows\system32 -rec d:; done
(В качестве длительной операции «скопировать все из c:\windows\system32 на d:»)
Функция done выводит сообщение с надписью «done» причем его видно даже есои компьютер залочен.
Это достигается вот таким простеньким кусочком кода в профиле:
+16
Знакомство с PowerShell
2 мин
21KО том, что Microsoft в недавнем прошлом разродилась свежей оболочкой под названием PowerShell, я узнал еще с год назад. А вот попробовать, что это за зверь такой, никак руки не доходили. Но вот на днях на свежеустановленном Window Server 2008 я обнаружил эту штуку в составе предустановленных компонент, и любопытство все же взяло верх. Открыл, попробовал набить пару команд типа «help», "?" и т.п. — в результате был получен список всех команд (в жаргоне PowerShella, командлетов — cmdlets), оказавшийся достаточно объемным. Причем в списке фигурировали названия вроде ForEach, Where, которые не могли не вызвать интереса к тому, как эти конструкции можно потрогать. Полез за документацией и был приятно удивлен найденным переводам книг-учебников по сабжу (читал Windows PowerShell RU) — ссылки можно найти на блоге одного из активных участников комьюнити:
blogs.technet.com/abeshkov/archive/2008/12/24/3172943.aspx
blogs.technet.com/abeshkov/archive/2008/12/24/3172943.aspx
+27
Вклад авторов
ruvds 343.0Nurked 183.0Sanctuary_s 158.0sahsAGU 150.8Tri-Edge 137.8thunderquack 130.0oldadmin 85.0ru_vds 76.8deseven 72.0eBuster 70.0