Скрипты для администратора windows

Содержание статьи

Встроенные средства администрирования ОС не всегда удобны или зачастую не обладают достаточным функционалом, поэтому арсенал сисадмина со временем пополняется полезными утилитами, надстройками и скриптами, которые существенно упрощают повседневные задачи. Вдвойне отрадно, когда найденное решение не только помогает справиться с определенной проблемой, но и распространяется на безвозмездной основе.

Advanced IP Scanner

Сисадмин должен знать все о системах, работающих в сети, и быстро получать к ним доступ. С данной задачей помогает справиться Advanced IP Scanner, предназначенный для быстрого многопоточного сканирования локальной сети. Предоставляется AIPS совершенно бесплатно, без каких-либо оговорок. Программа очень проста и понятна в работе. После запуска AIPS проверяет IP-адреса сетевых интерфейсов хоста, на котором она установлена, и автоматически прописывает диапазон IP в параметры сканирования; если IP менять не нужно, то остается запустить операцию сканирования. В результате получим список всех активных сетевых устройств. Для каждого будет собрана вся возможная информация: MAC-адрес, производитель сетевой карты, сетевое имя, зарегистрированный в системе пользователь, доступные общие ресурсы и сервисы (общие папки, HTTP, HTTPS и FTP). Практически все опции сканирования можно настроить, например изменить скорость или исключить проверку определенного типа сетевых ресурсов (общие папки, HTTP, HTTPS и FTP). К любому ресурсу можно подключиться одним кликом, достаточно лишь отметить его в списке. AIPS интегрирована с программой Radmin и в процессе сканирования находит все машины с работающим Radmin Server. Результат сканирования можно экспортировать в файл (XML, HTML или CSV) или сохранить в «Избранном» (поддерживается drag-and-drop). В дальнейшем, при необходимости обращения к нужному клиентскому компу, сканировать сеть повторно не требуется. Если удаленное устройство поддерживает функцию Wake-on-LAN, его можно включить и выключить, выбрав соответствующий пункт меню.

Хакер #163. Лучшие гаджеты для хакера

NetWrix Inactive Users Tracker

Компания NetWrix, специализирующаяся на разработке решений для аудита изменений IT-инфраструктуры, предлагает десять бесплатных и очень полезных утилит, призванных заметно упростить администрирование ОС Windows. Например, NetWrix Inactive Users Trackerпозволяет решить одну из насущных проблем безопасности — наличие неактивных учетных записей, которыми некоторое время никто не пользуется (уволенные сотрудники, командировка, перемещение по должности, временная учетка и тому подобное). Кадровики редко предупреждают IT-отдел об изменениях, и таким аккаунтом может запросто воспользоваться злоумышленник. Утилита периодически проверяет все учетные записи в доменах и сообщает о тех, доступ к которым не осуществлялся определенное время. В версии Free в качестве действий возможно указать лишь предупреждение по e-mail (достаточно задать параметры SMTP), все остальные операции админ производит вручную, хотя и предупреждения в нашем случае достаточно. В платной версии доступны: автоматическая установка случайного пароля, деактивация учетной записи и перемещение в другой OU, фильтр OU для поиска учетных записей. Отдельно предлагается PowerShell-командлет get-NCInactiveUsers, позволяющий получать список неактивных пользователей (проверяется атрибут «lastLogon») и упростить написание соответствующих скриптов.

Чтобы обнаружить неактивные учетные записи, применяем NetWrix Inactive Users Tracker

WinAudit Freeware

WinAudit — бесплатная утилита от компании Parmavex Services, позволяющая произвести полный аудит системы. Не требует установки, может выполняться в режиме командной строки. Программа обладает простым и локализованным интерфейсом, поддерживается запуск на всех версиях Windows, в том числе 64-битных. Сбор данных занимает примерно минуту (продолжительность процесса может варьироваться в зависимости от операционной системы и конфигурации компьютера), результирующий отчет состоит из 30 категорий (поддается настройке). В результате админ может получить данные о системе, установленном ПО и обновлениях с указанием версии и вендора, подключенных устройствах; список открытых сетевых портов (номер, сервис, программа и прочее) и открытых папок; активные сессии; установки безопасности; права доступа к периферии; информацию об учетных записях и группах; список задач/сервисов; программы в автозапуске; записи журналов и системную статистику (uptime, использование памяти, дисков). Также можно задать поиск определенных файлов по имени. Например, чтобы найти музыку и видео на жестких дисках пользователя, достаточно задать соответствующие расширения (avi, mp3 и тому подобные). Результат можно открыть как веб-страницу, экспортировать в файл многих популярных форматов (txt, XML, CSV, PDF) или в базу данных (при помощи мастера, поддерживаются все популярные: MS SQL, MS Access, MySQL, Oracle и другие), отправить по e-mail и распечатать.

При помощи WinAudit администратор узнает все о железе, ПО и системных настройках

Учет компьютеров с помощью CheckCfg

Проблема учета оргтехники и используемого ПО остро стоит в любой организации. Решить ее можно разными способами, один из вариантов предлагает разработчик Андрей ТатуковCheckCfg. Это решение периодически собирает данные о железе, ОС и программах, включая тип CPU, объем ОЗУ, место на дисках, состояние S.M.A.R.T. и прочее. При этом CheckCfg легко справляется с несколькими сотнями компьютеров. Результат выводится в удобной древовидной форме, к локальным каталогам легко получить доступ. Каждому ПК может присваиваться инвентаризационный номер, при необходимости легко сгенерировать отчет в RTF-формате.

CheckCfg представляет собой целый комплекс программ. За непосредственный сбор данных о компьютере отвечает CheckCfg, которая запускается при старте ОС и записывает результат в файл. Управление и архивация информации производится при помощи программы учета Sklad, которая обрабатывает файлы, созданные CheckCfg, и сохраняет в свою базу данных, после чего можно формировать отчеты. При помощи программы Sklad_w можно в удобной форме просматривать текущие конфигурации компьютеров и основные данные по оргтехнике (по IP-адресам, CPU, Memory, ПО). Для анализа изменений в конфигурации ПК и оповещения об этом администратора используется еще одна утилита — Doberman. Возможно, настройка покажется не совсем тривиальной, так как предстоит вручную создать нужные конфигурационные файлы, но детальное описание на сайте и имеющиеся шаблоны позволяют без проблем со всем разобраться.

MailArchiva Open Source Edition

Некоторые почтовые серверы, вроде MS Exchange, имеют функции архивирования почты, позволяющие при необходимости найти старые сообщения, в том числе и чтобы выявить утечку конфиденциальной информации при расследовании инцидентов. В остальных случаях приходится обеспечивать данные функции самостоятельно. Вариантом решения является разработка компании MailArchiva, совместимая с большинством современных почтовых серверов (Lotus Domino, MS Exchange, MDaemon, Postfix, Zimbra, Sendmail, Scalix, Google Apps). Поддерживается архивирование по протоколам SMTP, IMAP/POP3, WebDAV и через Мilter (программа имеет встроенный SMTP- и Milter-сервер, IMAP/POP-клиент). Чтобы не собирать всю почту, можно создавать любые правила архивации. Реализовано три уровня доступа к сохраненным данным — пользователь (только своя почта), администратор (настройки и своя почта) и аудитор (вся почта, можно ограничить правилами). В Open Source версии MailArchivaтакже реализованы функции интуитивного поиска, в том числе во вложениях (Word, PowerPoint, Excel, OpenOffice, PDF, RTF, ZIP, tar, gz). Работает MailArchiva на Windows, Linux, FreeBSD и Mac OS X.

Читайте также:  Running for governor by mark twain

Performance Analysis of Logs

В случае проблем с производительностью системы обнаружить узкое место при помощи штатного Windows Performance Monitor, не имея опыта, довольно сложно. Для того чтобы разобраться, какие метрики нужно снимать и как правильно интерпретировать результат, потребуется тщательно прошерстить документацию. Утилита PAL (Performance Analysis of Logs, pal.codeplex.com) заметно упрощает поиск «бутылочного горлышка». После запуска она просматривает журналы и анализирует их при помощи встроенных шаблонов. В настоящее время имеются настройки для большинства популярных продуктов MS — IIS, MOSS, SQL Server, BizTalk, Exchange, Active Directory и других. После запуска администратор в мастере PAL Wizard активирует нужные счетчики, просто выбрав шаблон из списка предложенных, указывает текущие настройки сервера (количество CPU и прочие), интервал анализа и каталог для сохранения результата. Через некоторое время будет выдан подробный отчет в HTML и XML, содержащий описание, имя счетчика и показатели (Min, Avg, Max и Hourly Trend). Отчет затем можно легко скопировать в любой документ. Но разбираться далее в собранных параметрах придется все равно самостоятельно. Хотя если PAL показывает, что характеристика находится в зеленом секторе, волноваться не стоит. Сам запрос сохраняется в скрипте PowerShell PAL.ps1, который можно сохранить для дальнейшего использования. Шаблоны представляют собой XML-файлы; взяв за пример любой из них, можно создать свой вариант. Для редактирования параметров в шаблоне предлагается встроенный редактор PAL Editor.

Отчеты, генерируемые PAL, позволяют получить информацию о производительности системы

Официально поддерживается Win7, но работает на всех ОС от MS, начиная с WinXP (32/64). Для установки понадобится PowerShell v2.0+, MS .NET Framework 3.5SP1 и MS Chart Controls for Microsoft .NET Framework 3.5.

Создаем точку доступа с Virtual Router

Ситуация, когда компьютер с Wi-Fi-картой необходимо превратить в точку доступа, сегодня отнюдь не редка. Например, нужно быстро развернуть WLAN или расширить зону покрытия Wi-Fi. Изначально работа беспроводной карты предусматривалась только в одном из двух режимов: точка — точка, когда клиенты подсоединяются друг к другу, или как точка доступа. В Win7/2k8 (кроме Win7 Starter Edition) появилась возможность виртуализировать сетевые соединения (технология Virtual Wi-Fi), позволяющая создавать несколько Wi-Fi-модулей со своими настройками при использовании одного физического Wi-Fi-адаптера. Таким образом компьютер может быть подключен к Wi-Fi и в то же время выступать в качестве точки доступа (SAPoint, Software Access Point). Соединение с таким виртуальным хот-спотом защищено при помощи WPA2. Превратить ПК под управлением Win7/2k8R2 в точку доступа можно при помощи консольной утилиты Netsh, через Центр управления сетями и общим доступом, либо воспользовавшись приложением Virtual Router, обладающим интуитивно понятным GUI и очень простыми настройками. После запуска Virtual Router нужно лишь указать SSD и пароль для подключения, а затем активировать точку доступа. При необходимости остановить работу хот-спота можно также нажатием одной кнопки. Дополнительно в окне отображаются текущие подключения к точке, для каждого можно задать свой значок и изменить некоторые параметры.

Используя Virtual Router, можно создать точку доступа из обычного ПК

Управление RDC-подключениями — RDCMan

Для удаленного управления серверами и ПК, работающими под управлением Windows, предназначена оснастка Remote Desktop Connection. Если необходимо устанавливать много RDP-соединений с различными настройками, то работать с ней становится неудобно. Вместо методичного сохранения индивидуальных настроек для каждого удаленного компьютера можно использовать бесплатный инструмент Remote Desktop Connection Manager RDCMan, автоматизирующий этот процесс. После запуска следует указать настройки RDP-подключения, которые будут использоваться по умолчанию и наследоваться всеми соединениями. Здесь задаем общие учетные данные, шлюз, установки экрана, параметры безопасности и многое другое. Далее создаем нужное количество групп систем (например, по назначению, расположению, версии ОС), для каждой из них можно указать специфические настройки соединения. И последний шаг — заполнение групп системами. Для добавления сервера следует ввести лишь доменное имя, если любой параметр будет отличаться от настроек групп, его можно тут же переопределить. При необходимости системы легко перемещаются между группами простым перетаскиванием. Если систем много, проще создать текстовый файл, указав по одному имени в строке, после чего скормить заготовку утилите. Теперь, чтобы подключиться, достаточно выбрать нужный сервер и в контекстном меню щелкнуть пункт «Connect». Можно одновременно активировать несколько соединений и переключаться между ними.

Free Active Directory Tools

Управлять параметрами Active Directory при помощи штатных инструментов не всегда просто и удобно. В некоторых ситуациях поможет комплект утилит Free Active Directory Tools, разрабатываемый компанией ManageEngine. Комплект состоит из четырнадцати утилит, запускаемых из одной оболочки. Для удобства они разбиты на шесть групп: AD USer Report, SharePoint Report, User Management, Domain and DC Info, Diagnostic Tools и Session Management. Например, запуск Empty Password User Report позволит получить список учетных записей с пустыми паролями, GetDuplicates — получить аккаунты с одинаковыми атрибутами, CSVGenerator — сохранить в CSV-файл данные аккаунтов Active Directory. Другие возможности: отчет о времени последнего входа в систему, получение данных из AD на основе запроса, отчеты по установкам SharePoint, управление локальными учетными записями, просмотр и редактирование политик паролей домена, получение списка контроллеров домена и их ролей, управление их репликацией, мониторинг их работы (загрузка CPU, ОЗУ, жестких дисков, производительность и прочее), управление терминальными сессиями и многое другое.

Пакет Free Active Directory Tools содержит 14 полезных утилит для администрирования AD

Comodo Time Machine

Возможность восстановления системы при помощи компонента System Restore заложена в Windows, начиная с ХР, но его функциональность, мягко говоря, ограничена, поэтому для бэкапа часто используют сторонние приложения. Бесплатная утилита Comodo Time Machine (comodo.com) позволяет сделать откат ОС до любого предыдущего состояния. Причем она будет работать даже в том случае, когда ОС совсем перестала загружаться. В процессе CTM создает точки восстановления (вручную или по расписанию), в них заносятся все измененные системные файлы, реестр, а также файлы пользователя. Это большое преимущество по сравнению с System Restore, который сохраняет и восстанавливает только системные файлы и реестр. Максимальный размер имеет первая копия, остальные копии хранят лишь измененные файлы. С целью экономии свободного дискового пространства следует периодически создавать новую контрольную точку, удаляя старые архивы. Для возможности восстановления ОС информация о CTM прописывается в загрузочный сектор; чтобы вызвать соответствующее меню, достаточно нажать клавишу Home. Восстанавливать состояние ОС можно также по расписанию, например настроить поведение утилиты так, чтобы при каждой перезагрузке производился автоматический откат к «чистой» версии системы. Это будет полезно, например, в интернет-кафе, где пользователи после себя оставляют в системе много мусора. Кроме полного восстановления ОС, утилита предоставляет возможность получить из архива более раннюю версию любого файла. Реализован поиск, поэтому найти нужные данные можно без проблем.

Amanda

Задачу централизованного резервного копирования данных с рабочих станций и серверов, работающих под управлением Windows и *nix, можно решить при помощи AMANDAAdvanced Maryland Automatic Network Disk Archiver). Изначально программа была создана для работы с ленточными накопителями, но со временем разработчики предложили механизм под названием «виртуальные ленты» (vtapes), позволяющий сохранять собранные данные на жесткие диски и CD/DVD. AMANDA является удобной надстройкой к стандартным Unix-программам dump/restore, GNU tar и некоторым другим, поэтому ее основные характеристики следует рассматривать именно исходя из возможностей этих базовых утилит. Работает по клиент-серверной схеме. Для доступа к компьютерам используются все доступные методы аутентификации: Kerberos 4/5, OpenSSH, rsh, bsdtcp, bsdudp или пароль Samba. Для сбора данных с Windows-систем задействуется специальный агент или, как вариант, Samba. Сжатие и шифрование (GPG или amcrypt) информации можно выполнять как непосредственно на клиенте, так и на сервере. Все настройки параметров резервирования производятся исключительно на сервере, в поставке имеются готовые шаблоны, поэтому разобраться довольно просто.

Читайте также:  Как перевернуть строку в паскале

На codeplex.com можно найти большое число весьма полезных утилит.

Инструкция по запуску Amanda Server на компе под управлением Windows.

Core Configurator 2.0 for Server Core

Первоначальная настройка сервера, работающего под управлением Win2k8/R2 в режиме Server Core, производится в консоли при помощи команд. Чтобы упростить задачу, разработчики ОС добавили в R2 интерактивный скрипт SCONFIG.cmd, позволяющий настроить основные параметры системы. На Сodeplex доступна альтернатива — замечательный конфигуратор Core Configurator. Для его работы понадобится наличие компонентов NetFx2-ServerCore, NetFx2-ServerCore и PowerShell. После запуска Start_CoreConfig.wsf получаем меню, в нем находим несколько пунктов, обеспечивающих доступ к основным настройкам, которыми пришлось бы управлять из командной строки: активация продукта, настройка разрешения экрана, часов и временной зоны, сетевого интерфейса, установка разрешений для удаленных RDP-подключений, управление локальными учетными записями, настройки Windows Firewall, включение/отключение WinRM, изменение имени компьютера, рабочей группы или домена, настройка роли, компонентов, Hyper-V и запуск DCPROMO. Если установить флажок «Load at Windows startup», то программа будет загружаться вместе с системой.

Exchange 2010 RBAC Manager

В Exchange 2010 появилась новая ролевая модель доступа, позволяющая тонко контролировать уровень привилегий для пользователей и администраторов в зависимости от выполняемых задач. Единственный минус — встроенные средства управления при помощи командлетов PowerShell не всем могут показаться удобными и понятными. Более развитыми возможностями обладает бесплатный инструмент Exchange 2010 RBAC Manager (RBAC Editor GUI, rbac.codeplex.com), предлагающий понятный графический интерфейс для настройки свойств всех ролей. Разобраться с его особенностями не составит труда даже новичку. Программа написана на C# и использует PowerShell. Для работы понадобится установленный Exchange 2010 Management Tools.

PowerGUI

Едва появившись, командная оболочка PowerShell завоевала симпатии виндовых админов, которые давно нуждались в инструменте, позволяющем автоматизировать многие задачи. С первыми версиями PowerShell разработчики из Microsoft не смогли предложить более-менее функциональный редактор, поэтому нишу заполнили несколько сторонних проектов. Самым лучшим из них на сегодня является PowerGUI, предоставляющий удобный графический интерфейс для эффективного создания и отладки PowerShell-скриптов. При этом авторы предлагают готовые комплекты сценариев для решения многих задач — их можно использовать в своих разработках.

Multi-Tabbed PuTTY

Свободно распространяемый клиент PuTTY хорошо известен админам, которым необходимо подключаться к удаленным хостам по протоколам SSH, Telnet или rlogin. Это очень удобная программа, позволяющая сохранить настройки сессий для быстрого подключения к выбранной системе. Единственное неудобство — при большом количестве подключений рабочий стол получается загружен множеством открытых окон. Эту проблему решает надстройка Multi-Tabbed PuTTY, реализующая систему вкладок.

Заключение

Часто нет необходимости ломать голову над решением определенной проблемы: скорее всего, другие администраторы с ней уже столкнулись и предложили свой вариант — конкретную утилиту или скрипт, за который даже не нужно платить.

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

Выключение и перезапуск

Итак, самая простая операция выключения вашего компьютера. Открываем блокнот, прописываем:

Сохраняем файл, как *.cmd (*- имя вашего файла, например shutdown.cmd) и не забудьте в типе выбрать “все файлы”. Всё, исполняемый файл по запуску выключит ваш компьютер. “-s”, в данном случае означает выключение, замените на “-r” — получите перезагрузку. “-t” — таймер, у нас он установлен на 0 секунд, но если установить на 60 — получите выключение через 60 секунд.

Удаляем ненужное

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

get-appxpackage -name *APPNAME* | remove-appxpackage

Как вы понимаете, *APPNAME* — название неинтересующей надстройки. Да, удалять эти пакеты можно стандартным путём или через специальные программы, но вы можете создать скрипт, который удалит их все одним двойным кликом.

Управляем процессами

Есть в PowerShell две полезные команды, которые позволят бороться с ветряными мельницами (процессами, снижающими быстродействие). Вывести их на экран можно просто прописав:

или информацию о конкретном сервисе под кодовым названием *NAME* (на этом месте должно быть название интересующего сервиса):

Но это можно сделать в диспетчере задач, а вот действительно полезным может оказаться создание файла, который по клику закрывал бы все процессы с повышенным потреблением ресурсов (браузеры, антивирусы и пр.). Для этого воспользуйтесь командой Stop-Service:

Stop-Service -Name *ANTIVIRUS*

Stop-Service -Name *BROWSER*

Названия для замены указаны в * *.

Переименовываем группу файлов

Ещё одна назойливая проблема: вы скопировали с фотоаппарата или телефона изображения. Огромная куча фотографий, которые называются однотипно вроде HGNMD034, где HGNMD — название общей директории, объединяющей файлы, например, отснятые за один день. Для того, чтобы сделать название этих файлов приятнее или иметь возможность объединить несколько папок, не получив при этом хронологическую путаницу из-за имен, можно использовать скрипт группового переименования:

$path = "$compdesktopjourney
ussia"
$filter = ‘*.jpg’
get-childitem -path $path -filter $filter |
rename-item -newname

В первой строке в кавычках укажите точный путь к файлам. Во второй строке — расширение файлов, подлежащих изменению. В последней строке вместо “HGNMD” — общее в названиях файлов, подлежащее замене, на что-то, вместо “RUSSIA” — имя, которое вы хотите присвоить. Если данный скрипт опять сохранить в качестве исполняемого файла, то подобные однотипные операции будут отнимать у вас всего несколько секунд времени.

Ищем файлы

Ещё одна простая задача, реализуемая на PowerShell — поиск файлов в директории. В данном случае рассмотрим поиск log-файлов:

Или чуть более сложный пример, когда поиск будет производиться ещё и в подпапках:

Get-ChildItem C:Windows* -Include *.log -Recurse -Force

Это чуть более правильная и полная запись, где “Include” — указывает на искомую часть, “Recurse” — на поиск во вложенных каталогах, “Force” — поиск включает в себя системные и скрытые файлы.

Справка

Итак, с общими принципами функционирования PowerShell мы более-менее разобрались. Если что-то непонятно — обратитесь к справочной информации следующим образом:

Это команда, которая выведет на экран все доступные команды с кратким описанием. Хотите подробнее? Нет ничего проще:

Get-Help -Name *CMDLET*

Где вместо *CMDLET* вставьте любую интересующую команду.

Находим данные

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

Читайте также:  Алгоритм волк коза и капуста

Add-Type -AssemblyName System.Windows.Forms
[Windows.Forms.PowerStatus].GetConstructor(‘NonPublic, Instance’, $null, [Type[]]@(), $null ).Invoke($null)

Архитектура процессора удалённого компьютера:

[PSObject].Assembly.GetType( ‘System.Management.Automation.PsUtils’
).GetMethod(‘GetProcessorArchitecture’, [Reflection.BindingFlags]40
).Invoke($null, @())

Иногда важной задачей бывает проверка прав администратора у текущего пользователя. Вот простой способ на PowerShell:

[PSObject].Assembly.GetType(‘System.Management.Automation.Utils’).GetMethod(
‘IsAdministrator’, [Reflection.BindingFlags]40).Invoke($null, @())

На этом пока остановимся. Как вы наверное убедились, PowerShell не самый сложный, но очень полезный инструмент, который способен выполнять, как простейшие операции, так и достаточно сложные. Однако PowerShell не единственный инструмент для создания скриптов для Windows. Но об этом в следующий раз.

Если вы только недавно встали на путь программирования и ещё даже не пробовали поиграться с установленной операционной системой, то манипулирование с помощью скриптов может вызвать резонные вопросы необходимости и удобства. Однако, даже если опустить тот простой факт, что они помогают лучше понять, как функционирует ОС, в будущем при создании приложений, исполнение сценариев может оказаться крайне полезным навыком.

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

Выключение и перезапуск

Итак, самая простая операция выключения вашего компьютера. Открываем блокнот, прописываем:

Сохраняем файл, как *.cmd (*- имя вашего файла, например shutdown.cmd) и не забудьте в типе выбрать “все файлы”. Всё, исполняемый файл по запуску выключит ваш компьютер. “-s”, в данном случае означает выключение, замените на “-r” — получите перезагрузку. “-t” — таймер, у нас он установлен на 0 секунд, но если установить на 60 — получите выключение через 60 секунд.

Удаляем ненужное

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

get-appxpackage -name *APPNAME* | remove-appxpackage

Как вы понимаете, *APPNAME* — название неинтересующей надстройки. Да, удалять эти пакеты можно стандартным путём или через специальные программы, но вы можете создать скрипт, который удалит их все одним двойным кликом.

Управляем процессами

Есть в PowerShell две полезные команды, которые позволят бороться с ветряными мельницами (процессами, снижающими быстродействие). Вывести их на экран можно просто прописав:

или информацию о конкретном сервисе под кодовым названием *NAME* (на этом месте должно быть название интересующего сервиса):

Но это можно сделать в диспетчере задач, а вот действительно полезным может оказаться создание файла, который по клику закрывал бы все процессы с повышенным потреблением ресурсов (браузеры, антивирусы и пр.). Для этого воспользуйтесь командой Stop-Service:

Stop-Service -Name *ANTIVIRUS*

Stop-Service -Name *BROWSER*

Названия для замены указаны в * *.

Переименовываем группу файлов

Ещё одна назойливая проблема: вы скопировали с фотоаппарата или телефона изображения. Огромная куча фотографий, которые называются однотипно вроде HGNMD034, где HGNMD — название общей директории, объединяющей файлы, например, отснятые за один день. Для того, чтобы сделать название этих файлов приятнее или иметь возможность объединить несколько папок, не получив при этом хронологическую путаницу из-за имен, можно использовать скрипт группового переименования:

$path = "$compdesktopjourney
ussia"
$filter = ‘*.jpg’
get-childitem -path $path -filter $filter |
rename-item -newname

В первой строке в кавычках укажите точный путь к файлам. Во второй строке — расширение файлов, подлежащих изменению. В последней строке вместо “HGNMD” — общее в названиях файлов, подлежащее замене, на что-то, вместо “RUSSIA” — имя, которое вы хотите присвоить. Если данный скрипт опять сохранить в качестве исполняемого файла, то подобные однотипные операции будут отнимать у вас всего несколько секунд времени.

Ищем файлы

Ещё одна простая задача, реализуемая на PowerShell — поиск файлов в директории. В данном случае рассмотрим поиск log-файлов:

Или чуть более сложный пример, когда поиск будет производиться ещё и в подпапках:

Get-ChildItem C:Windows* -Include *.log -Recurse -Force

Это чуть более правильная и полная запись, где “Include” — указывает на искомую часть, “Recurse” — на поиск во вложенных каталогах, “Force” — поиск включает в себя системные и скрытые файлы.

Справка

Итак, с общими принципами функционирования PowerShell мы более-менее разобрались. Если что-то непонятно — обратитесь к справочной информации следующим образом:

Это команда, которая выведет на экран все доступные команды с кратким описанием. Хотите подробнее? Нет ничего проще:

Get-Help -Name *CMDLET*

Где вместо *CMDLET* вставьте любую интересующую команду.

Находим данные

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

Add-Type -AssemblyName System.Windows.Forms
[Windows.Forms.PowerStatus].GetConstructor(‘NonPublic, Instance’, $null, [Type[]]@(), $null ).Invoke($null)

Архитектура процессора удалённого компьютера:

[PSObject].Assembly.GetType( ‘System.Management.Automation.PsUtils’
).GetMethod(‘GetProcessorArchitecture’, [Reflection.BindingFlags]40
).Invoke($null, @())

Иногда важной задачей бывает проверка прав администратора у текущего пользователя. Вот простой способ на PowerShell:

[PSObject].Assembly.GetType(‘System.Management.Automation.Utils’).GetMethod(
‘IsAdministrator’, [Reflection.BindingFlags]40).Invoke($null, @())

На этом пока остановимся. Как вы наверное убедились, PowerShell не самый сложный, но очень полезный инструмент, который способен выполнять, как простейшие операции, так и достаточно сложные. Однако PowerShell не единственный инструмент для создания скриптов для Windows. Но об этом в следующий раз.

Будучи какое-то время назад админом (ленивым), написал несколько скриптов, автоматизирующих рутину и позволяющих еще больше лениться. Админством я больше не занимаюсь, а скрипты выкладываю, может кому пригодятся.

1. Авто-установка описания компьютера локально и в AD

В компании был стандарт на наименование компьютеров, что-то вроде COMPUTERxxxx (xxxx — это цифра), соответсвенно Хелпдеску было сложно по имени человека найти компьютер для начальной диагностики и удаленного подключения, а объяснение рядовому пользователю как определить имя компьютера занимало много времени. Решение пришло в виде скрипта.

После запуска шерстит все компьютеры из указанных OU и устанавливает описание в зависимости от залогиненного пользователя.

* Скрипт должен запускаться от учетки, имеющей админские права на компьютерах и доступ на изменение описания компьютера в AD.
** Не корректно работает на Windows 2000, если залогиненый пользователь не локальный администратор, с Windows Vista не тестировался.

Перед запуском нужно настроить скрипт.

2. Авто-очистка «папки обмена»

Каждый отдел в компании имел свою папку, куда не имели доступ другие отделы. Для обмен информацией между отделами (презентации, текст, да и музыка) извращались как могли. Пришлось создать папку для обмена и скрипт, очищаюший ее, чтобы информация там не залеживалась.

Логика скрипта: файлы, со дня создания/модификации которых прошло 10 дней, помещаются в спец папку внутри папки обмена (_deletion_queue_), после чего из папки «на удаление», через 7 дней, файлы удаляются совсем.

Все настраивается переменными в скрипте.

3. Редирект «Избранного»

Microsoft предусмотрела редирект практически всего, кроме «Избранного». Почему — загадка. В компании было жесткое правило, чтобы все данные хранились на серверах. Потеря «Избранного», конечно, не смертельна, но неприятна. Поэтому я написал скрипт, который делает редирект «Избранного» в папку на сервере.

PS. Скрипты писались «для себя», поэтому, перед использованием настройте и проверьте на чем-нибудь не важном 🙂

Оцените статью
Добавить комментарий

Adblock
detector