DSCResources/MSFT_WaitForADDomain/en-US/about_WaitForADDomain.help.txt

.NAME
    WaitForADDomain
 
.DESCRIPTION
    The WaitForADDomain resource is used to wait for Active Directory domain
    controller to become available in the domain, or available in
    a specific site in the domain.
 
    >Running the resource as *NT AUTHORITY\SYSTEM*, only work when
    >evaluating the domain on the current node, for example on a
    >node that should be a domain controller (which might require a
    >restart of the node once the node becomes a domain controller).
    >In all other scenarios use either the built-in parameter
    >`PsDscRunAsCredential`, or the parameter `Credential`.
 
    Using the parameter `WaitForValidCredentials` ignores authentication
    errors a let the resource wait until time timeout is reached. If the
    parameter `WaitForValidCredentials` is not specified and the resource
    throws an authentication error, then the resource will fail. But the
    Local Configuration Manger (LCM) will automatically run the configuration
    again to try to get the node in desired state. If and when the LCM retries
    depends on how the LCM is configured.
 
    ## Requirements
 
    * Target machine must be running Windows Server 2008 R2 or later.
 
.PARAMETER DomainName
    Key - String
    Specifies the fully qualified domain name to wait for.
 
.PARAMETER SiteName
    Write - String
    Specifies the site in the domain where to look for a domain controller.
 
.PARAMETER Credential
    Write - PSCredential
    Specifies the credentials that are used when accessing the domain, unless the built-in PsDscRunAsCredential is used.
 
.PARAMETER WaitTimeout
    Write - UInt64
    Specifies the timeout in seconds that the resource will wait for the domain to be accessible. Default value is 300 seconds.
 
.PARAMETER RestartCount
    Write - UInt32
    Specifies the number of times the node will be reboot in an effort to connect to the domain.
 
.PARAMETER WaitForValidCredentials
    Write - Boolean
    Specifies that the resource will not throw an error if authentication fails using the provided credentials and continue wait for the timeout. This can be used if the credentials are known to eventually exist but there are a potential timing issue before they are accessible.
 
.PARAMETER IsAvailable
    Read - Boolean
    Returns a value indicating if a domain controller was found.
 
.EXAMPLE 1
 
This configuration will wait for an Active Directory domain controller
to respond within 300 seconds (default) in the domain 'contoso.com'
before returning and allowing the configuration to continue to run.
If the timeout is reached an error will be thrown.
This will use the current user when determining if the domain is available,
if run though LCM this will use SYSTEM (which might not have access).
 
Configuration WaitForADDomain_WaitForDomainController_Config
{
    Import-DscResource -Module ActiveDirectoryDsc
 
    Node localhost
    {
        WaitForADDomain 'contoso.com'
        {
            DomainName = 'contoso.com'
        }
    }
}
 
.EXAMPLE 2
 
This configuration will wait for an Active Directory domain controller
to respond within 300 seconds (default) in the domain 'contoso.com'
before returning and allowing the configuration to continue to run.
If the timeout is reached an error will be thrown.
This will use the user credential passed in the built-in PsDscRunAsCredential
parameter when determining if the domain is available.
 
Configuration WaitForADDomain_WaitForDomainControllerUsingBuiltInCredential_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential
    )
 
    Import-DscResource -Module ActiveDirectoryDsc
 
    Node localhost
    {
        WaitForADDomain 'contoso.com'
        {
            DomainName = 'contoso.com'
 
            PsDscRunAsCredential = $Credential
        }
    }
}
 
.EXAMPLE 3
 
This configuration will wait for an Active Directory domain controller
to respond within 300 seconds (default) in the domain 'contoso.com'
before returning and allowing the configuration to continue to run.
If the timeout is reached an error will be thrown.
This will use the user credential passed in the parameter Credential
when determining if the domain is available.
 
Configuration WaitForADDomain_WaitForDomainControllerUsingCredential_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential
    )
 
    Import-DscResource -Module ActiveDirectoryDsc
 
    Node localhost
    {
        WaitForADDomain 'contoso.com'
        {
            DomainName = 'contoso.com'
            Credential = $Credential
        }
    }
}
 
.EXAMPLE 4
 
This configuration will wait for an Active Directory domain controller
in the site 'Europe' to respond within 300 seconds (default) in the
domain 'contoso.com' before returning and allowing the configuration to
continue to run.
If the timeout is reached an error will be thrown.
This will use the user credential passed in the built-in PsDscRunAsCredential
parameter when determining if the domain is available.
 
Configuration WaitForADDomain_WaitForDomainControllerInSite_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential
    )
 
    Import-DscResource -Module ActiveDirectoryDsc
 
    Node localhost
    {
        WaitForADDomain 'contoso.com'
        {
            DomainName = 'contoso.com'
            SiteName = 'Europe'
 
            PsDscRunAsCredential = $Credential
        }
    }
}
 
.EXAMPLE 5
 
This configuration will wait for an Active Directory domain controller
to respond within 300 seconds (default) in the domain 'contoso.com'
before returning and allowing the configuration to continue to run.
If the timeout is reached the node will be restarted up to two times
and again wait after each restart. If no domain controller is found
after the second restart an error will be thrown.
This will use the user credential passed in the built-in PsDscRunAsCredential
parameter when determining if the domain is available.
 
Configuration WaitForADDomain_WaitForDomainControllerWithReboot_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential
    )
 
    Import-DscResource -Module ActiveDirectoryDsc
 
    Node localhost
    {
        WaitForADDomain 'contoso.com'
        {
            DomainName = 'contoso.com'
            RestartCount = 2
 
            PsDscRunAsCredential = $Credential
        }
    }
}
 
.EXAMPLE 6
 
This configuration will wait for an Active Directory domain controller
to respond within 600 seconds in the domain 'contoso.com' before
returning and allowing the configuration to continue to run. If the timeout
is reached an error will be thrown.
This will use the user credential passed in the built-in PsDscRunAsCredential
parameter when determining if the domain is available.
 
Configuration WaitForADDomain_WaitForDomainControllerWithLongerDelay_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential
    )
 
    Import-DscResource -Module ActiveDirectoryDsc
 
    Node localhost
    {
        WaitForADDomain 'contoso.com'
        {
            DomainName = 'contoso.com'
            WaitTimeout = 600
 
            PsDscRunAsCredential = $Credential
        }
    }
}
 
.EXAMPLE 7
 
This configuration will wait for an Active Directory domain controller
to respond within the default period, and ignore any authentication
errors.
 
Configuration WaitForADDomain_WaitForDomainControllerIgnoringAuthenticationErrors_Config
{
    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential
    )
 
    Import-DscResource -Module ActiveDirectoryDsc
 
    Node localhost
    {
        WaitForADDomain 'contoso.com'
        {
            DomainName = 'contoso.com'
            WaitForValidCredentials = $true
 
            PsDscRunAsCredential = $Credential
        }
    }
}