Welcome to TechNet Blogs Sign in | Join | Help

Заметки об Exchange и Active Directory

Информация на данном сайте предоставляется "КАК ЕСТЬ" без каких-либо гарантий и передачи прав. Мнения, высказанные здесь, являются отражением моего личного взгляда, а не позиции работодателя.
Управление получателями в многодоменной среде (часть 2)

Сегодня мы рассмотрим на примерах все параметрых встроенной переменной $AdminSessionADSettings. По умолчанию "видение всего леса" отключено, и область видимости всех командлетов в данном процессе ограничена локальным доменом компьютера. Конфигурационный контроллер домена (ККД) тот же, что ККД, используемый службами Exchange на данном компьютере.

[PS] C:\>$AdminSessionADSettings

ViewEntireForest              : False
DefaultScope                  : asia.company.com
PreferredGlobalCatalog        :
ConfigurationDomainController : dc16.asia.company.com
PreferredDomainControllers    : {}

Попробуем найти всех получателей по имени Петр:

[PS] C:\>get-mailbox petr* | fl Identity

Identity : asia.company.com/Users/Petr Petrov
Identity : asia.company.com/Users/Petr Ivanov

Как видите, все они из текущего домена - Asia. Теперь расширим нашу географию и рассмотрим весь лес:

[PS] C:\>$AdminSessionADSettings.ViewEntireForest = $true

[PS] C:\>get-mailbox petr* | fl Identity

Identity : europe.company.com/Users/Petr Pavlov
Identity : asia.company.com/Users/Petr Petrov
Identity : asia.company.com/Users/Petr Ivanov

В список результатов теперь попал еще один Петр из европейского домена. Вот как выглядят наши настройки в данный момент:

[PS] C:\>$AdminSessionADSettings

ViewEntireForest              : True
DefaultScope                  :
PreferredGlobalCatalog        :
ConfigurationDomainController : dc16.asia.company.com
PreferredDomainControllers    : {}

Теперь снова сузим наше поле зрения до одного домена, но в этот раз выберем другой домен.

[PS] C:\>$AdminSessionADSettings.ViewEntireForest = $false

[PS] C:\>$AdminSessionADSettings

ViewEntireForest              : False
DefaultScope                  : asia.company.com
PreferredGlobalCatalog        :
ConfigurationDomainController : dc16.asia.company.com
PreferredDomainControllers    : {}

[PS] C:\>$AdminSessionADSettings.DefaultScope = "europe.company.com"

Проверим, что теперь мы смотрим только на Европу: 

[PS] C:\>$AdminSessionADSettings

ViewEntireForest              : False
DefaultScope                  : europe.company.com
PreferredGlobalCatalog        :
ConfigurationDomainController : dc16.asia.company.com
PreferredDomainControllers    : {}

[PS] C:\>get-mailbox petr* | fl Identity

Identity : europe.company.com/Users/Petr Pavlov

Как и ожидалось, нам вернулся только один объект из текущего домена.
Теперь попробуем более тонкие установки: в список предпочитаемых серверов можно внемти по одному контроллеру домена на каждый домен - при этом все командлеты, выполняюшиеся в данном процессе, будут использовать именно их (когда нужен сервер из специфического домена)

[PS] C:\>$AdminSessionADSettings.PreferredDomainControllers = "dc01.asia.company.com"
[PS] C:\>$AdminSessionADSettings

ViewEntireForest              : False
DefaultScope                  : europe.company.com
PreferredGlobalCatalog        :
ConfigurationDomainController : dc16.asia.company.com
PreferredDomainControllers    : {dc01.asia.company.com}

Аналогично можно установить глобальный каталог:

[PS] C:\>$AdminSessionADSettings.PreferredGlobalCatalog = "dc01.asia.company.com"
[PS] C:\>$AdminSessionADSettings.ViewEntireForest = $true

Эту установку можно проверить, посмотрев на поле OriginatingServer в возвращаемых результатах 

[PS] C:\>get-mailbox petr* | fl Identity, originatingserver

Identity          : europe.company.com/Users/Petr Pavlov
OriginatingServer : dc01.asia.company.com

Identity          : asia.company.com/Users/Petr Petrov
OriginatingServer : dc01.asia.company.com

Identity          : aisa.company.com/Users/Petra Ivalov
OriginatingServer : dc01.asia.company.com


И наконец, напоминаю, что с этой встроенной переменной нужно обращаться осторожно, а то можно нечаянно ее уничтожить:

[PS] C:\>$AdminSessionADSettings = $false
[PS] C:\>$AdminSessionADSettings
False

К счастью, с настройками при этом ничего не случилось, и переменную можно вернуть обратно:

[PS] C:\>$AdminSessionADSettings = [Microsoft.Exchange.Data.Directory.AdminSessionADSettings]::Instance
[PS] C:\>$AdminSessionADSettings

ViewEntireForest              : True
DefaultScope                  :
PreferredGlobalCatalog        :
ConfigurationDomainController : dc16.asia.company.com
PreferredDomainControllers    : {}

Вот и все. Если есть вопросы пишите или оставляйте комментарии.

Posted: Tuesday, February 27, 2007 6:39 PM by vladg

Comments

Tantra said:

Владимир, а как управлять переменной $AdminSessionADSettings из managed кода? Например, для нахождения всех получателей:

RunspaceConfiguration rsConfig = RunspaceConfiguration.Create();

PSSnapInException snapInException = null;

PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException);

Runspace myRunSpace = RunspaceFactory.CreateRunspace(rsConfig);

myRunSpace.Open();

Pipeline pipeLine = myRunSpace.CreatePipeline();

Command myCommand = new Command("Get-Mailbox");

pipeLine.Commands.Add(myCommand);

Collection<PSObject> commandResults = pipeLine.Invoke();

# June 11, 2007 9:00 AM
Anonymous comments are disabled
Page view tracker