windows.configure_domain

This MC contains a FIREWHEEL plugin designed to configure and schedule the joining of a domain and the creation of a domain controller. Additionally, the following VM resources are provided with this model component:

  1. join_windows_domain.ps1 - Joins a Windows machine to a specified domain.

  2. install_domain_controller.ps1 - Installs and configures a domain controller on a Windows Server machine.

  3. change_password.ps1 - Changes the password for a specified user.

  4. add_activedirectory_users.ps1 - Adds or updates Active Directory users.

Attribute Depends:
  • graph

Attribute Provides:
  • windows_domain

Model Component Dependencies:

Plugin

class windows.configure_domain_plugin.ConfigureDomain(graph, log)[source]

Bases: AbstractPlugin

This plugin configures and schedules joining a domain and creating a domain controller.

__annotate_func__ = None
__annotations_cache__ = {}
__firstlineno__ = 7
__static_attributes__ = ()
add_users(v)[source]

Adds users to the domain controller.

Parameters:

v (Vertex) – The vertex describing the domain controller.

fix_hostname(host)[source]

Ensures the hostname is set before joining the domain regardless of whether anyone else has tried to set the hostname.

Parameters:

host (Vertex) – The vertex describing the host.

get_dns_address()[source]

Gets the IP address of the DNS Server in the experiment.

Returns:

The IP address of the DNS server, or None if not found.

Return type:

str

join_rel_time = -50
run()[source]

Executes the domain configuration process.

The logic is as follows:
  • Find all the domain controllers in the graph.

  • Schedule the DC and then find its experiment IP address.

  • Find all vertices (hosts) that belong to that domain and schedule them.

set_dc_schedule(v)[source]

Adds to the domain controller’s schedule.

Warning

This method assumes that the Administrator password is originally set to: changeme&1 and then changed to ChangeThisPassword#1. Users should update this as needed.

Parameters:

v (Vertex) – The vertex describing the domain controller.

set_host_schedule(host, domain_dns_name, dc_ip)[source]

Adds to the hosts’ schedule if it is part of a domain.

Warning

This method assumes that the Administrator password is set to: ChangeThisPassword#1 and will need to be updated by users.

Parameters:
  • host (Vertex) – The vertex describing the host.

  • domain_dns_name (str) – The DNS name used to join the domain.

  • dc_ip (str) – The experiment IP address of the domain controller.