Проверка компьютеров в домене с кириллическими именами. Powershell

Powershell Logo

Столкнулся с ситуацией, что буква "C" в имени нескольких компьютеров была написана кириллицей. Минус такой ситуации, что некоторые информационные системы некорректно обрабатывают кириллические имена компьютеров в домена, а также компьютеры с такими символами не всегда можно найти поиском. Скрипт для проверки имён компьютеров с русскими буквами:

Get-AdComputer -SearchBase "dc=domain, dc=ru" -Filter * -Properties CanonicalName | Where { $_.Name -like "*А*" -or $_.Name -like "*Б*" -or $_.Name -like "*В*"`
-or $_.Name -like "*Г*" -or $_.Name -like "*Д*" -or $_.Name -like "*Е*" -or $_.Name -like "*Ж*" -or $_.Name -like "*З*" -or $_.Name -like "*И*" -or $_.Name -like "*К*"`
-or $_.Name -like "*Л*" -or $_.Name -like "*М*" -or $_.Name -like "*Н*" -or $_.Name -like "*О*" -or $_.Name -like "*П*" -or $_.Name -like "*Р*" -or $_.Name -like "*С*"`
-or $_.Name -like "*Т*" -or $_.Name -like "*У*" -or $_.Name -like "*Ф*" -or $_.Name -like "*Х*" -or $_.Name -like "*Ц*" -or $_.Name -like "*Ч*" -or $_.Name -like "*Ш*"`
-or $_.Name -like "*Щ*" -or $_.Name -like "*Э*" -or $_.Name -like "*Ю*" -or $_.Name -like "*Я*" } | select name, CanonicalName

Работа с группами Active Directory с помощью Powershell

Powershell Logo

1. Импорт пользователей в группы Active Directory с помощью Powershell. Задача - добавить пользователей в группы AD из файла CSV.

Содержание CSV-файла:

ADGroup | ADUsers
ServerAdmin | vasya;petya;danya

Скрипт:

$src = Import-CSV -Path "C:\scripts\add-adgroupmember\test.csv" -delimiter ";" -Encoding Default

foreach($line in $src){
    $users = $line.ADUsers -split ";"
    $groups = $line.ADGroup
    foreach($user in $users){
    Add-ADGroupMember -Identity $groups -Members $user
    }
}  

Если пользователь уже есть в группе, то вылезет ошибка и скрипт продолжит работать.

Читать далее

Создание общего почтового ящика с помощью Powershell в Exchange 2010

Задача - создать общий почтовый ящик и добавить права для него для нескольких пользователей. Для этого предварительно нужно создать учётку ящика в AD и выключить её.

Скрипт:

$identity = "mailbox"
$alias = "mailbox"
# Пользователи, для которых нужно дать доступ
$users = "vasya","petya"

# Создаём ящик
Enable-Mailbox -Identity $identity -Shared -Alias $alias -Database 'database'

# Права на полный доступ
Foreach ($user in $users)
          {
          Add-MailboxPermission -Identity $identity -User "Domain\$user" -AccessRights 'FullAccess'
          }

# Права на отправить как
Foreach ($user1 in $users)
          {
          Add-ADPermission -Identity $identity -User "Domain\$user1" -ExtendedRights 'Send-as'
          }
# Удалить права можно такими командами:
# Remove-MailboxPermission -Identity 'mailbox' -User 'Domain\vasya' -InheritanceType 'All' -AccessRights 'FullAccess'
# Remove-ADPermission -Identity 'mailbox' -User 'Domain\petya' -InheritanceType 'All' -ExtendedRights 'send-as' -ChildObjectTypes $null -InheritedObjectType $null -Properties $null

Скопировать всех пользователей из одной группы в другую с помощью Powershell

Скопировать всех пользователей из одной группы в другую:

Get-ADGroupMember "Domain Users" | ForEach-Object { Add-ADGroupMember "Group" -Members $_ }
Get-InboxRule –Mailbox "okazakova" | Select Name, Description | fl).count