-band, -bor и их LDAP-аналоги

Как мы знаем, многие атрибуты объектов Active Directory представлены в виде битовых масок. Например, такие как UserAccountControl для объектов пользователя или компьютера или GroupType для объекта группы.

И хотя командлеты модуля ActiveDirectory представляют эти значения в виде отдельных атрибутов, скрывая от пользователя их истинную природу, иногда нам все-таки приходится работать с ними напрямую.

Читать далее

Реклама

Использование методов ConvertToDateTime и ConvertFromDateTime объектов WMI

В продолжение предыдущей темы о конвертации значений даты и времени, в этот раз поговорим об объектах WMI.

Для получения экземпляров объектов WMI нам доступны несколько способов. Один из них — это использование командлетов модуля CIMCmdlets. Например, так:

Читать далее

Получение значения атрибута pwdLastSet объекта пользователя при запросе к Active Directory с использованием LDAP

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

Когда для запросов к Active Directory мы используем командлеты одноименного модуля, то результаты их выполнения не требуют от нас каких-либо дополнительынх действий. Однако, если по каким-то причинам решили использовать LDAP, здесь все немного сложнее.

Читать далее

ConvertFrom-sthSID — функция для конвертации строки SID в формат массива байтов

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

Читать далее

ConvertTo-sthSID — функция для конвертации SID в виде массива байтов в строчный формат

Работать с Active Directory из PowerShell гораздо удобнее с использованием командлетов из одноименного модуля. Однако, если на каком-либо компьютере этот модуль не установлен и PowerShell Remoting нам в данный момент по каким-то причинам недоступен, мы можем использовать ADSI — Active Directory Service Interfaces.

Когда мы обращаемся к Active Directory при помощи ADSI, например, так

[adsi]"LDAP://CN=UserName,CN=Users,DC=domain,DC=com" | Format-List -Property *

большинство атрибутов выглядят так же, как если бы мы использовали командлет Get-ADUser из модуля ActiveDirectory. Но есть и несколько исключений. Одним из них является атрибут ObjectSID.

Читать далее

Remove-sthPreviousModuleVersions: функция для удаления предыдущих версий модулей

Модуль PowerShellGet — очень удобная вещь. Мы можем легко находить, устанавливать и обновлять модули из PowerShell Gallery и других зарегистрированных репозиториев при помощи командлетов Find-Module, Install-Module и Update-Module.

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

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

Читать далее

GitHub: fork, clone и другие

Существующие репозитории чаще всего используются в двух случаях: для начала разработки своего проекта, причем не с нуля, а с использованием чьего-либо кода (Open Source!) или же для того, чтобы предложить внесение изменений в чей-либо уже существующий код. При этом во втором случае предполагается, что все изменения вы вносите в свой репозиторий, а к принятию их предлагаете уже в готовом виде.

Читать далее

Copy-Item -Destination Unknown

Если вы часто используете командлет Copy-Item в скриптах или интерактивно, то вы могли заметить, что результат его работы, в части того, как в итоге будут расположены копируемые элементы, в некоторой степени непредсказуем.

Тем не менее, логика здесь есть, и зависит она от существования элемента, указанного в параметре -Destination.

Читать далее

Несколько сочетаний клавиш в Visual Studio Code

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

Учитывая, что в качестве основного инструмента разработки для PowerShell теперь предлагается Visual Studio Code, предлагаю рассмотреть несколько полезных сочетаний клавиш.

Читать далее