24 декабря 2019

Используем Powershell для работы с планировщиком заданий для создания и изменения задач

В Windows есть механизм под названием ‘Планировщик заданий’ (Task Scheduler). Основная задача планировщика — выполнение задач в определенный момент времени или при определенном действии. В этой статье будет рассмотрены варианты работы с ним через Powershell. На примере мы создадим задание в виде скрипта с Powershell, изменим и удалим его используя только команды.

Работа планировщика в Powershell

Отличительной чертой работы Powershell является то, что мы должны создать каждый из объектов (результат команд) планировщика отдельно, а затем объединить их с помощью 1 команды. Сами объекты делятся на следующие:

Читать далее
17 ноября 2019

Удаленное удаление программ при помощи WMI

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

В данном случае будем использовать инструментарий управления Windows — WMI.

Читать далее
7 ноября 2019

Как использовать циклы While и Foreach в Powershell Foreach на примерах

Основное предназначение циклов в Powershell, так же как и в других языках, выполнение итераций. Проще говоря они помогают выполнять одну и ту же инструкцию для разных значений. Отличительной чертой циклов в Powershell является их количество, всего их 7:

  1. Foreach-Object — команда;
  2. Foreach — выражение;
  3. Foreach() — метод;
  4. For — цикл;
  5. While — цикл;
  6. Do-While — цикл;
  7. Do-Until — цикл.

Каждый из них по своему выполняет итерации. Само понятие итераций обозначает повторное выполнение действий, например команд. Иногда можно услышать слова «итерируемый объект» или «итератор», которые обозначают объект проходящий через цикл.

Читать далее
20 августа 2019

SSH подключение к Linux из Windows PowerShell

Функция удаленного взаимодействия PowerShell обычно использует WinRM для передачи данных. Теперь протокол SSH доступен на платформах Linux и Windows, что позволяет осуществлять многоплатформенное удаленное взаимодействие с PowerShell. Начиная с PowerShell 6 и выше можно работать по WinRM между Windows и Linux машинами, так-же можно работать непосредственно по SSH, при условии, что на Windows машине установлен SSH клиент.

Читать далее
16 августа 2019

Включение БП без материнской платы или проверка блока питания

Сегодня я расскажу как запустить БП (Блок Питания) Вашего компьютера без материнской платы, абсолютно все блоки питания которые производят на сегодняшний день можно запускать с помощью обычной скрепки!

И так нам понадобятся:

  1. Ваш блок питания (не стоит его вытаскивать и откручивать, просто отсоедините главный длинный шлейф от материнской платы)
  2. Скрепка(скрепка подойдёт любая, правда бывают скрепки с нейлоновым покрытием, которое следует снять)
Читать далее
4 августа 2019

PowerShell: используем Invoke-Command для запуска команд/скриптов на удаленных компьютерах

В этой статье мы рассмотрим особенности использования командлета Invoke-Command для удаленного выполнения команд и скриптов. Возможно запускать команды удаленно на одном компьютере, или параллельно на множестве компьютерах в вашей сети. Командлет Invoke-Command использует возможности удаленного управления, заложенные в PowerShell Remoting. PowerShell Remoting позволяет удаленно подключаться к PowerShell сессиям на компьютерах через службу WinRM (Windows Remote Management) через протокол Web Services for Management (WS-Management). Этот сервис дает возможность принимать команды Powershell и устанавливать сеансы.

Читать далее
14 июля 2019

Интересные ключи Robocopy

Некоторые полезные и малопонятные параметры (ключи):


 — исключить (из операций) файлы, которые (в папке откудастарее («older»):

— если старее окажется файл в папке куда, то он будет в ней перезаписан — все как обычно

— если файл в папке куда вдруг окажется новее, то он останется нетронутым

Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что в папке источника (откуда) более старый файл — этот файл просто пропускается и ничего с ним не происходит вообще.

ВАЖНО! Файл будет перезаписан (в первом случае), или не затронут (во втором случае) независимо того какой у него размер или атрибуты. Кроме того, если у обрабатываемых файлов есть посторонние внешние жесткие ссылки, то обрабатываемые файлы могут быть неверно прочитаны Robocopy.


 — исключить (из операций) файлы, которые (в папке откудановее («newer»):

— если новее вдруг окажется файл в папке куда, то он будет в ней перезаписан

— если файл в папке куда окажется старее, то он останется нетронутым

Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что в папке источника (откуда) более новый файл — этот файл просто пропускается и ничего с ним не происходит вообще.

ВАЖНО! Файл будет перезаписан (в первом случае), или не затронут (во втором случае) независимо того какой у него размер или атрибуты.


 — исключить (из операций) измененные («changed») файлы:

— только одинаковое время (!) и разный размер означают, что файлы «changed»

— если файлы имеют одинаковое время и разный размер — файл в папке куда останется нетронутым (будет исключен из обработки)

— если файлы имеют разное время то даже разный размер не будет иметь значения, — файл в папке куда НЕ будет считаться «changed» и НЕ будет исключен из обработки (а будет видимо перезаписан).

— атрибуты файлов для этого ключа вообще не важны

Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что у файлов одинаковые метки времени, то только тогда сравнивается размер файлов, и если размер отличается, то только тогда файлы считаются «changed» и будут исключены из обработки (проигнорированы). Если метки времени разные, то независимо от их разного размера — файлы НЕ попадут в класс «changed» (и НЕ будут обрабатываться этим ключом), — т.е. НЕ будут исключены (НЕ будут проигнорированы программой), а будут перезаписаны!

ВАЖНО! Если одноименные файлы в папках откуда и куда имеют одинаковые метки времени, одинаковый размер (!), но разное содержимое (а такое тоже бывает), то Robocopy этого к сожалению не увидит — в этом случае его будет интересовать только размер файлов.

Так же надо учитывать что посторонние жесткие ссылки на обрабатываемые файлы могут сильно повлиять на достоверность результата, поскольку информация о новом размере файла может отсутствовать (даже если размер был изменен.


 — исключить (из операций) «дополнительные» («extra») файлы и папки, — которых НЕТ в папке откуда, но они есть в папке куда.


 — исключить (из операций) «одинокие» («lonely») файлы и папки, — которые ЕСТЬ в папке откуда, но отсутствуют в папке куда.


 — включить одинаковые («same») файлы, — которые полностью идентичны (по времени, размеру и атрибутам)


 — включить «твикнутые» («tweaked») файлы, — которые имеют одинаковый размер и метки времени, но разные атрибуты.


Полезная таблица для понимания классификации файлов в Robocopy:

24 июня 2019

Удаленное управление через Powershell

В Powershell есть несколько методов удаленного подключения. Это через:

  • WMI
  • CIM
  • PS remoting/WinRM

Сегодня мы поговорим о PS remoting/WinRM. В его состав входит, в основном, два командлета — это:

Читать далее
14 мая 2019

Разбираемся с типами групп Active Directory. Как создать новую группу в AD?

Группа Active Directory – это совокупность объектов в Active Directory. В группу могут входить пользователи, компьютеры, другие группы и другие объекты AD. Администратор управляет группой как одним объектом. В Active Directory существует 7 типов групп: две группы с тремя областями действий в каждой и локальная группа безопасности. В этой статье мы расскажем о различных типах групп Active Directory, отличиях между областями действия групп и покажем, как создавать в AD новые группы с помощью графической консоли «Active Directory пользователи и компьютеры» и с помощью командной строки PowerShell.

Типы групп Active Directory

В AD существует два типа групп:

  • Группа безопасности – этот тип группы используется для предоставления доступа к ресурсам. Например, вы хотите предоставить определенной группе доступ к файлам в сетевой папке. Для этого нужно создать группу безопасности.
  • Группа распространения – данный тип групп используется для создания групп почтовых рассылок (как правило используется при установке Microsoft Exchange Server). Письмо, отправленное на такую группу, дойдет всем пользователям группы. Это тип группы нельзя использовать для предоставления доступа к ресурсам домена.

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

Для каждого типа группы существует три области действия:

  • Локальная в домене — используется для управления разрешениями доступа к ресурсам (файлам, папкам и другим типам ресурсам) только того домена, где она была создана. Локальную группу нельзя использовать в других доменах (однако в локальную группу могут входить пользователи другого домена). Локальная группа может входить в другую локальную группу, но не может входить в глобальную.
  • Глобальная группа – данная группа может использоваться для предоставления доступа к ресурсам другого домена. В эту группу можно добавить только учетные записи из того же домена, в котором создана группа. Глобальная группа может входить в другие глобальные и локальные группы.
  • Универсальная группа — рекомендуется использовать в лесах из множества доменов. С помощью нее можно определять роли и управлять ресурсами, которые распределены на нескольких доменах. В том случае, если в вашей сети имеется много филиалов, связанных медленными WAN каналами, желательно использовать универсальные группы только для редко изменяющихся групп. Т.к. изменение универсальной группы вызывает необходимость репликации глобального каталога во всем предприятии.

Отдельно выделяют локальные группы. Эти группы создаются в локальной базе данных диспетчера безопасности учетных записей (SAM) только одного компьютера. В отличии от доменных групп, локальные группы работают даже в случае недоступности контролеров домена.

Создаем группу с помощью оснастки ADUC

Самый простой способ создать группу – воспользоваться графической консолью Active Directory — Пользователи и компьютеры (dsa.msc). Перейдите в OU, в котором вы хотите создать группу, щелкните по нему ПКМ и выберите Создать -> Группа.

Укажите имя группы и выберите необходимый тип и область действия. И нажмите Ок.

Чтобы добавить пользователя в группу, найдите ее в консоли ADUC и дважды щелкните. В окне свойств групп перейдите на вкладку «Члены групп» и с помощью кнопки «Добавить» добавьте в группу пользователей, компьютеры или другие группы.

Также можно добавить пользователя в группу правым кликом по нему и выбрать пункт добавить в группу. Это довольно удобно при массовом добавлении.

Как создать группу Active Directory с помощью PowerShell

Для создания групп Active Directory используется командлет PowerShell New-ADGroup.

Тип группы, группа безопасности (Security) или распространения (Distribution), указывается с помощью аргумента –GroupCategory. Область действия группы указывается с помощью параметра GroupScope (допустимые значения DomainLocal, Global, Universal).

Чтобы создать новую группу глобальную групп распространения в указанном OU, вы можете использовать команду

Теперь создадим новую группу безопасности:

New-ADGroup –Name RemoteKalugaUsers -GroupScope Universal -GroupCategory Security -Path «OU=Groups,OU=Kauga,DC=vmblog,DC=ru»

Теперь можно добавить пользователей в эту группу с помощью командлета Add-ADGroupMember: