Когда вы используете Try/Catch/Finally, команда которая будет выполняться помещается в блок Try. Если произойдет ошибка в процессе выполнения команды, то она будет записана в переменную $Error, и выполнение скрипта перейдет к блоку Catch.
Читать полностью »
Рубрика «powershell» - 19
Рабоче-крестьянское резервное копирование под Windows
2014-12-25 в 8:19, admin, рубрики: backup, powershell, shadow copy, windows, резервное копирование, Серверное администрирование
Постановка задачи
Допустим, вы системный администратор в малой/средней (да чего уж там, иногда даже большой) компании, перед которым стоит задача организации резервного копирования файлового сервера исключительно с помощью подручных средств. Или вы продвинутый пользователь, которому небезразлична судьба хранящихся на вашем жестком диске файлов.
Пусть задача будет звучать следующим образом:
- Необходимо организовать автоматическое резервное копирование определенных файлов компьютера на отдельный носитель.
- Компьютер работает под управлением Windows версий 7 / 2008 или более поздней.
- Объем данных большой, поэтому копирование должно поддерживаться как полное, так и дифференциальное.
- Д.б. возможность копировать любые файлы, в т.ч. системные, заблокированные на чтение и т. п.
- Сторонним платным софтом пользоваться категорически не хочется (ну, допустим, мы стеснены в средствах, а эти ваши торренты — не наш путь! Или религия не позволяет. Или миллион других причин.), а лучше вообще обойтись без любого стороннего софта, пользуясь лишь возможностями ОС .
Немного подумав, еще расширим список хотелок:
- Как продолжение предыдущего пункта, формат архива также должен быть открытым и распространенным, чтобы в случае чего его без проблем открыть откуда угодно с помощью чего-угодно
- Более того, он должен быть таким, чтобы из любого, даже дифференциального архива, можно было бы без труда вытащить любой файл, не распаковывая для этого весь архив.
- Глубина архивации должна настраиваться (что называется, backup rotate).
- Было бы неплохо также с архивом сохранять дескрипторы безопасности NTFS.
- И вообще, хочется максимальной расширяемости и настраиваемости, если завтра возникнет желание нагородить дополнительный функционал.
Что ж, требования сформулированы, дело за малым – спланировать и реализовать всё остальное.
Читать полностью »
Использование таймаута при работе с WMI через Powershell
2014-12-17 в 13:08, admin, рубрики: powershell, системное администрированиеЗдравствуйте читатели.
Недавно был опубликован урок по сбору информации о рабочих станциях с использованием PowerShell. В комментариях были рекомендации по реализации некоторого функционала с помощью WMI. Это напомнило мне о некоторых нюансах функционирования WMI на серверах и рабочих станциях, с которыми пришлось столкнуться на работе.
Читать полностью »
Advanced PowerShell vol. 1: повторное использование кода
2014-12-16 в 9:37, admin, рубрики: powershell, Windows Server, Серверное администрирование, системное администрирование Привет! Как большой поклонник и активный практик PowerShell я часто сталкиваюсь с тем, что мне необходимо повторно использовать ранее написанные куски кода.
Собственно, для современных языков программирования code reuse — это обычное дело.
PowerShell в этом вопросе не отстает, и предлагает разработчикам (написателям скриптов) сразу несколько механизмов обращения к написанному ранее коду.
Вот они по возрастанию сложности: использование функций, дот-сорсинг и написание собственных модулей.
Рассмотрим их все порядку.
В качестве решения лабораторной задачи напишем скрипт, который расширяет раздел C: до максимально возможного размера на удаленном Windows-сервере LAB-FS1.
Такой скрипт будет состоять из одной строки и выглядеть так:
Invoke-Command -ComputerName LAB-FS1 -ScriptBlock { "rescan", "select volume=c", "extend" | diskpart }
Работает это так. Сначала PowerShell устанавливает удаленное соединение с сервером LAB-FS1 и запускает на нем локально набор команд, заключенный в фигурные скобки параметра -ScriptBlock. Этот набор в свою очередь последовательно передает команде diskpart три текстовых параметра, а diskpart выполняет (по очереди) повторное сканирование разделов, выбор раздела C: и расширение его до максимально возможного размера.
Как видите, скрипт крайне простой, но в то же время крайне полезный.
Рассмотрим, как правильно упаковать его для повторного использования.
Читать полностью »
Сбор информации о рабочих станциях через Powershell
2014-12-15 в 14:51, admin, рубрики: powershell, ит-инфраструктура, Написание скриптов, системное администрированиеСбор информации о рабочих станциях через Powershell.
Этот пост будет посвящен работе написанию скриптов на Powershell. Далее я предполагаю, что читатель уже сталкивался с написанием скриптов в windows среде. Итак:
Была у меня задача собрать некоторую информацию по пользовательским рабочим станциям в организации. Все станции в AD и пользователи тоже, что упрощает задачу. Есть контейнер, где находятся все станции, значит нужно пройтись по всем, взяв интересующую информацию, и отобразить результат. Раз так, то пишем скрипт. При написании, я стараюсь делать скрипт по частям. ИМХО для меня так проще и понятнее. Читать полностью »
DFS Replication и «временные» файлы
2014-12-05 в 8:58, admin, рубрики: DFS Replication, powershell, Windows Server, Серверное администрирование, системное администрирование Всем привет!
Это моя первая публикация, надеюсь, что в дальнейшем буду писать часто.
Если что-то неправильно оформил, поправьте, я исправлю как надо.
В работе пришлось столкнуться с интересной особенностью работы DFS Replication. И хотя сам рассматриваемый вопрос не нов, набить на нем шишки могут многие.
Итак, у нас есть стабильно работающая среда, в которой успешно настроены и работают DFS-репликации. Создана репликационная группа, в нее добавлены все нужные серверы, топология корректна, расписание тоже, все хорошо… пока однажды новые файлы, добавленные в реплицируемую папку не перестают копироваться на удаленные серверы.
Для примера я сделал тестовую среду, в которой всего два сервера — LAB-DC1 и LAB-FS1. На каждом из них есть папка C:DFSR, между которыми и должна проходить репликация.
Копируем в эту папку на LAB-DC1 два тестовых файла и видим, что на второй сервер отреплицировался только один.
Почему?
Читать полностью »
PowerShell Web Access: управление серверами из браузера
2014-11-11 в 6:56, admin, рубрики: powershell, windows server 2012 r2, Блог компании Microsoft, системное администрированиеPowerShell – это один из основных инструментов, который может использовать системный администратор для выполнения настройки и для управления доменной сетью. Часто у системного администратора возникает необходимость удаленно подключиться к серверу и выполнить на нем определенные задачи. Конечно, можно использовать Remote Desktop, но этом случае администратор будет ограничен – не всегда можно легко и быстро удаленно подключиться к компьютеру, не всегда под рукой есть удобный компьютер. В этой статье я расскажу вам о возможности удаленного подключения с использованием PowerShell Web Access.
Автоматическое подключение сетевых МФУ с возможностью сканирования [Часть 2]
2014-11-10 в 6:35, admin, рубрики: kyocera, powershell, WIA, МФУ, системное администрирование, сканирование, установка драйвераКак и обещал в первой части, за которую я успешно получил инвайт в песочнице, в этой заметке я покажу как подключить сетевые МФУ Kyocera M2035dn, Xerox WorkCentre 3615 и 6505DN, а в конце статьи добавлю небольшой бонус с которым любой скрипт связанный с сетью становится лучше.
Как бы небыли прекрасны гомогенные инфраструктуры, пусть даже в части принтеров и мфу, реальность зачастую ставит свои условия. В то время как пользователи сами в полный рост подключали и успешно сканировали с некогда проблемных МФУ HP, в компанию приехал японский гость — Kyocera M2035dn.
Kyocera M2035dn
Приехал как всегда не в мое уютное админское логово, а сразу на объект и как и мфу от HP, в глаза его я, если честно, даже не видел.
Первым делом качаем драйвер и смотрим содержимое… ба, знакомые все люди:
Есть пометка о том, что подключение сетевое (network) и есть ID! Читать полностью »
Jump Start в PowerShell (часть II)
2014-11-09 в 18:19, admin, рубрики: microsoft, powershell, Программирование, системное администрированиеКто, если не ты? Когда, если не сейчас?
В предыдущей части мы научились запускать PowerShell, разобрались с политикой выполнения сценариев. Поняли, что такое командлеты, знаем, как передавать их по конвейеру и как получить их свойства. Узнали, что PowerShell имеет огромный Help.
В этой части мы разберёмся с переменными, узнаем, что они за типы и как к ним обращаться, как их сравнивать и выводить всевозможными способами. Обязательно разберёмся с циклами и напишем несколько функций.
Читать полностью »
Особенности работы DNS Windows Server 2012R2 и PowerShell
2014-11-08 в 21:39, admin, рубрики: DNS, microsoft, powershell, Серверное администрирование Приветствую!
Недавно решил добавить записи «типа A» и «CNAME» на DNS сервер с помощью PowerShell.
Открыл консоль, выполнил команду
Add-DnsServerResourceRecordA -IPv4Address 192.168.1.101 -Name tomsk -ZoneName sales.contoso.com -CreatePtr
И каково же было моё удивление, когда я увидел сообщение о том, что «Зона sales.contoso.com не найдена на сервере», хотя я ее создал 30 секунд назад.
Читать полностью »