Why a variable called AdminSessionADSettings might interest you as Exchange 2007 Admin

August 5th, 2008 by IlseVanCriekinge
Last updated on August 5th, 2008

 

I must admit, I love Exchange, and the first look¬†I had on Exchange 2007, I was feeling very uneasy when faced with the Exchange Management Shell. But second thing to admit, after working with the shell for almost two years now, I love the power of this thing with the perfect name: POWERShell ūüôā

As an Exchange administrator, it is hard not to get familiar with the Shell. And I will try to post in this blog some tips that will be useful for you as an exchange administrator, and hopefully make some PowerShell addicts have a look at this great messaging product Exchange is now, (and have to admit, always has been ;-))

$AdminSessionAdSettings

When you start the Exchange Management Shell, you will notice that by default you will be connected to a domain controller and that the scope is set to the domain you’re logged on to. When looking at the script that is executed when launching the shell, you will notice that the reason for this is that there is a global variable¬†created¬†of type Microsoft.Exchange.Data.Directory.AdminSessionADSettings.

$global:AdminSessionADSettings = [Microsoft.Exchange.Data.Directory.AdminSessionADSettings]::Instance
## Reset the Default Domain
$global:AdminSessionADSettings.ViewEntireForest = $false

You can take advantage of this variable to set the Shell to your likings. Let’s have a look.

$AdminSessionADSettings.ViewEntireForest=$True

If you have multiple domains in your organization, it might be useful to set the scope to the entire forest, for example when running Get-Mailbox you will by default get back the list of mailboxes the shell can retrieve from the domain controller he’s connected to. When setting the scope to the entire forest, you will get a list retrieved by querying a global catalog. The beauty of it all is, that when you want to change something to a particular object, the change will occur against a domain controller in the domain the object belongs to.

To change the scope of the Exchange Management Shell to the entire forest, you need to change the value of the boolean property ViewEntireForest from false to true, as can be seen below:

$AdminSessionADSettings.ViewEntireForest=$True

You will notice that in the title bar tat the scope is set to View Entire Forest.

Not only can I increase the scope to the entire forest, you can focus the scope to one particular Organizational Unit, by setting the value of the property DefaultScope to an organizational unit, like:

$AdminSessionADSettings.DefaultScope=”ProExchange.Global/Employees”

And that’s not all, when looking at the members of this variable, you will notice that you can use the variable to set the shell to use one particular Domain Controller (or a list of) or one (or more) Global Catalogs when using the Shell.

[PS] C:\>$AdminSessionADSettings | gm
TypeName: Microsoft.Exchange.Data.Directory.AdminSessionADSettings

Name¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†MemberType DefinitionÔŅĹ
—-¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† ———- ———-

ClearPreferredDomainControllers¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†Method¬†¬†¬†¬† System.Void ClearPreferredDomai…
Equals                                                       Method     System.Boolean Equals(Object obj)
GetHashCode¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Int32 GetHashCode()¬†¬†¬†¬†¬†ÔŅĹ
GetType¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Type GetType()¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†ÔŅĹ
get_ConfigurationDomainController¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† Microsoft.Exchange.Data.Fqdn ge…
get_DefaultScope                                    Method     System.String get_DefaultScope()
get_PreferredDomainControllers¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†Method¬†¬†¬†¬† Microsoft.Exchange.Data.MultiVa…
get_PreferredGlobalCatalog¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† Microsoft.Exchange.Data.Fqdn ge…
get_ViewEntireForest¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Boolean get_ViewEntireFo…
RemovePreferredDomainController¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Void RemovePreferredDoma…
RemovePreferredDomainControllers¬†¬†¬†¬† Method¬†¬†¬†¬† System.Void RemovePreferredDoma…
SetPreferredDomainController¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†Method¬†¬†¬†¬† System.Void SetPreferredDomainC…
SetPreferredDomainControllers¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Void SetPreferredDomainC…
set_ConfigurationDomainController¬† Method¬†¬†¬†¬† System.Void set_ConfigurationDo…
set_DefaultScope¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Void set_DefaultScope(St…
set_PreferredDomainControllers¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Void set_PreferredDomain…
set_PreferredGlobalCatalog¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Void set_PreferredGlobal…
set_ViewEntireForest¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.Void set_ViewEntireFores…
ToString¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Method¬†¬†¬†¬† System.String ToString()¬†¬†¬†¬†¬†¬†¬†ÔŅĹ
ConfigurationDomainController¬†¬†¬†¬† Property¬†¬† Microsoft.Exchange.Data.Fqdn Co…
DefaultScope¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Property¬†¬† System.String DefaultScope {get…
PreferredDomainControllers¬†¬†¬†¬† Property¬†¬† Microsoft.Exchange.Data.MultiVa…
PreferredGlobalCatalog¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Property¬†¬† Microsoft.Exchange.Data.Fqdn Pr…
ViewEntireForest¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Property¬†¬† System.Boolean ViewEntireForest…
That’s it for now,

Feel free to let me know if there is anything you’d like to see covered here!

– Ilse

Ilse Van Criekinge (Exchange MVP, Author Exchange Management Shell: TFM)

 

 
[Google+]   [Facebook]   [LinkedIn]   [StumbleUpon]   [Digg]   [Reddit]   [Google Bookmark]  

Tags: , ,