Архив рубрики: Powershell

Powershell. Поиск в тексте

Иногда есть необходимость найти файл, по содержащимся в нем словам, или же найти все строки содержащие нужный паттерн.
Рассмотрим несколько вариантов поиска по тексту в Powershell

Для примера я буду искать в логах Exchange 2013 нужного мне отправителя Читать далее Powershell. Поиск в тексте

Установка PowerShellGet

В PowerShell, начиная с версии 5.1 встроен модуль PowerShellGet.
Это Package Manager( или менеджер пакетов), позволяющий устанавливать модули из подключенного по умолчанию репозитория PSGallery.
Заметка поможет добавить этот модуль в более раннюю версию, например PowerShell 4.
Читать далее Установка PowerShellGet

RDS. Управление терминальными сеансами

В Powershell есть модуль RemoteDesktop, предназначенный для управления терминальными сеансами

ipmo RemoteDesktop
Get-RDUserSession | ft UserName,CreateTime,DisconnectTime,SessionState,SessionId,HostServer -AutoSize

Но Get-RDUserSession доступен начиная только с 2012 сервера, требует запуска сеанса с повышенными привилегиями и отображает время простоя в миллисекундах, что неудобно для восприятия. Поэтому можно воспользоваться и другим, более громоздким но безотказным вариантом, с использованием команды quser
Читать далее RDS. Управление терминальными сеансами

Powershell. Перевод первых букв в верхний регистр(Капитализация)

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

Это может очень пригодится для преобразования не форматированного списка пользователей из csv, для создания новых учеток в AD.
Читать далее Powershell. Перевод первых букв в верхний регистр(Капитализация)

Работа с драйверами принтера. Часть 1

Для извлечения драйверов из системы можно использовать специальные программы, но зачастую не все из них отображают полный список  доступных в системе устройств.
Со списком таких программ мы вы можете ознакомиться на другом сайте,
а в этой заметке давайте посмотрим на расширенный набор действий с драйверами принтеров, такие как добавление\удаление и установка драйвера \удаление драйвера принтера.
Читать далее Работа с драйверами принтера. Часть 1

Signtool. Подпись файлов сертификатом

Первым делом стоит определиться зачем кому-то может понадобиться подписывать какие-то файлы сертификатом. В общем смысле, в целях безопасности. Если же привести конкретные примеры, то например для подписания своего драйвера, ведь не подписанные драйвера блокируются в  x64 системах начиная с Windows 7. Или же для того что бы добавить файл по сертификату в Whitelist антивируса, что бы не было ложных срабатываний.
Далее давайте детально разберем алгоритм подписания файлов.
Читать далее Signtool. Подпись файлов сертификатом

Powershell. Определить имя учетки\группы по SID

Определить имя учетки или группы по SID может понадобиться если парк компьютеров содержит как русские, так английские локализации ОС.
Как всегда легко справиться с этой задачей нам поможет Powershell

$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-32-544")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$ADMgroup = ($objUser.Value).TrimStart('BUILTIN\')

или

# Для группы
( gwmi Win32_Group -Filter "name='Администраторы' or name='Administrators'" ).SID
# Для пользователя
( gwmi Win32_UserAccount -filter "name='UserName'" ).SID

Альтернативные варианты для CMD:

# Получение SID группы
wmic group where (name='Administrators' or name='Администраторы') get sid /Value
# Получение SID пользователя
wmic useraccount where name='UserName' get sid /value