From 9a7ae45f61f59b976563197b5aed451eb541e890 Mon Sep 17 00:00:00 2001 From: Dmitry Teselkin Date: Mon, 11 Aug 2014 12:38:56 +0400 Subject: [PATCH 1/6] Adding win2k8 support --- .../Classes/Host.yaml | 1 - .../Classes/PrimaryController.yaml | 2 +- .../Classes/SecondaryController.yaml | 6 +- .../Resources/DomainSecurity.json | 264 +++++++++--------- .../Install-RolePrimaryDomainController.ps1 | 94 +++++-- .../Install-RoleSecondaryDomainController.ps1 | 86 +++--- .../Resources/scripts/Join-Domain.ps1 | 48 ++-- .../scripts/Set-LocalUserPassword.ps1 | 4 +- 8 files changed, 275 insertions(+), 230 deletions(-) diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/Host.yaml b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/Host.yaml index 9294e79..82ea3f1 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/Host.yaml +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/Host.yaml @@ -46,4 +46,3 @@ Workflow: dnsIp => $domain.primaryController.dnsIp )) - $.agent.call($template, $resources) - diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/PrimaryController.yaml b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/PrimaryController.yaml index 1b1535a..366ed0d 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/PrimaryController.yaml +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/PrimaryController.yaml @@ -25,7 +25,7 @@ Workflow: - $.super($.deploy()) - $resources: new(sys:Resources) - $template: $resources.json('CreatePrimaryDC.template').bind(dict( - domain => $.domain.name, + domain => $.domain.name, recoveryPassword => $.recoveryPassword )) - $.host.agent.call($template, $resources) diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/SecondaryController.yaml b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/SecondaryController.yaml index ebd3466..4de87e5 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/SecondaryController.yaml +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/SecondaryController.yaml @@ -19,10 +19,10 @@ Workflow: - $.host.joinDomain($.domain) - $resources: new(sys:Resources) - $template: $resources.json('CreateSecondaryDC.template').bind(dict( - domain => $.domain.name, - recoveryPassword => $.recoveryPassword, + domain => $.domain.name, + recoveryPassword => $.recoveryPassword, domainAccountName => $.domain.adminAccountName, - domainPassword => $.domain.adminPassword + domainPassword => $.domain.adminPassword )) - $.host.agent.call($template, $resources) # diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/DomainSecurity.json b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/DomainSecurity.json index 07f98a1..841747e 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/DomainSecurity.json +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/DomainSecurity.json @@ -1,134 +1,134 @@ [ - { - "IpProtocol": "tcp", - "FromPort": "25", - "ToPort": "25", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "53", - "ToPort": "53", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "53", - "ToPort": "53", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "88", - "ToPort": "88", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "88", - "ToPort": "88", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "123", - "ToPort": "123", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "135", - "ToPort": "135", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "137", - "ToPort": "137", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "138", - "ToPort": "138", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "445", - "ToPort": "445", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "445", - "ToPort": "445", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "464", - "ToPort": "464", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "464", - "ToPort": "464", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "389", - "ToPort": "389", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "389", - "ToPort": "389", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "636", - "ToPort": "636", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "3268", - "ToPort": "3268", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "3269", - "ToPort": "3269", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "5722", - "ToPort": "5722", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "9389", - "ToPort": "9389", - "External": false - }, - { - "IpProtocol": "tcp", - "FromPort": "49152", - "ToPort": "65535", - "External": false - }, - { - "IpProtocol": "udp", - "FromPort": "49152", - "ToPort": "65535", - "External": false - } + { + "IpProtocol": "tcp", + "FromPort": "25", + "ToPort": "25", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "53", + "ToPort": "53", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "53", + "ToPort": "53", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "88", + "ToPort": "88", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "88", + "ToPort": "88", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "123", + "ToPort": "123", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "135", + "ToPort": "135", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "137", + "ToPort": "137", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "138", + "ToPort": "138", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "445", + "ToPort": "445", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "445", + "ToPort": "445", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "464", + "ToPort": "464", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "464", + "ToPort": "464", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "389", + "ToPort": "389", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "389", + "ToPort": "389", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "636", + "ToPort": "636", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "3268", + "ToPort": "3268", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "3269", + "ToPort": "3269", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "5722", + "ToPort": "5722", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "9389", + "ToPort": "9389", + "External": false + }, + { + "IpProtocol": "tcp", + "FromPort": "49152", + "ToPort": "65535", + "External": false + }, + { + "IpProtocol": "udp", + "FromPort": "49152", + "ToPort": "65535", + "External": false + } ] diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 index e8f1e5a..09822aa 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 @@ -5,10 +5,10 @@ trap { Function Install-RolePrimaryDomainController { - param ( - [String] $DomainName, - [String] $SafeModePassword - ) + param ( + [String] $DomainName, + [String] $SafeModePassword + ) begin { Show-InvocationInfo $MyInvocation } @@ -20,24 +20,70 @@ Function Install-RolePrimaryDomainController { &$TrapHandler } - Add-WindowsFeatureWrapper ` - -Name "DNS","AD-Domain-Services","RSAT-DFS-Mgmt-Con" ` - -IncludeManagementTools ` - -NotifyRestart - - Write-Log "Creating first domain controller ..." - - $SMAP = ConvertTo-SecureString -String $SafeModePassword -AsPlainText -Force - - $null = Install-ADDSForest ` - -DomainName $DomainName ` - -SafeModeAdministratorPassword $SMAP ` - -DomainMode Default ` - -ForestMode Default ` - -NoRebootOnCompletion ` - -Force - - Write-Log "Waiting 60 seconds for reboot ..." - Start-Sleep -Seconds 60 - } + $OSVersion = [System.Environment]::OSVersion.Version + $VersionString = $OSVersion.Major + '.' + $OSVersion.Minor + + switch ($VersionString) { + '6.1' { + Import-Module ServerManager + + Add-WindowsFeature -Name "DNS","ADDS-Domain-Controller","RSAT-DFS-Mgmt-Con" + + Write-Log "Creating first domain controller ..." +<# + $DcPromoArgs = @( + '/unattend', + '/InstallDns:yes', + '/ParentDomainDNSName:contoso.com', + '/replicaOrNewDomain:domain', + '/newDomain:child', + '/newDomainDnsName:east.contoso.com', + '/childName:east', + '/DomainNetbiosName:east', + '/databasePath:"e:\ntds"', + '/logPath:"e:\ntdslogs"', + '/sysvolpath:"g:\sysvol"', + '/safeModeAdminPassword:FH#3573.cK', + '/forestLevel:2', + '/domainLevel:2', + '/rebootOnCompletion:yes' + ) +#> + $DcPromoArgs = @( + '/unattend', + '/installDns:yes', + '/replicaOrNewDomain:domain', + '/newDomain:Forest', + "/newDomainDnsName:${DomainName}", + "/safeModeAdminPassword:${SafeModePassword}", + '/forestLevel:4', + '/domainLevel:4', + '/rebootOnCompletion:no' + ) + + Exec 'dcpromo' $DcPromoArgs + } + default { + Add-WindowsFeatureWrapper ` + -Name "DNS","AD-Domain-Services","RSAT-DFS-Mgmt-Con" ` + -IncludeManagementTools ` + -NotifyRestart + + Write-Log "Creating first domain controller ..." + + $SMAP = ConvertTo-SecureString -String $SafeModePassword -AsPlainText -Force + + $null = Install-ADDSForest ` + -DomainName $DomainName ` + -SafeModeAdministratorPassword $SMAP ` + -DomainMode Default ` + -ForestMode Default ` + -NoRebootOnCompletion ` + -Force + } + } + + Write-Log "Waiting 60 seconds for reboot ..." + Start-Sleep -Seconds 60 + } } diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 index be9258e..bc8a866 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 @@ -11,24 +11,24 @@ Function Install-RoleSecondaryDomainController Install additional (secondary) domain controller. #> - param - ( - [String] - # Domain name to join to. - $DomainName, - - [String] - # Domain user who is allowed to join computer to domain. - $UserName, - - [String] - # User's password. - $Password, - - [String] - # Domain controller recovery mode password. - $SafeModePassword - ) + param + ( + [String] + # Domain name to join to. + $DomainName, + + [String] + # Domain user who is allowed to join computer to domain. + $UserName, + + [String] + # User's password. + $Password, + + [String] + # Domain controller recovery mode password. + $SafeModePassword + ) begin { Show-InvocationInfo $MyInvocation } @@ -39,31 +39,31 @@ Install additional (secondary) domain controller. trap { &$TrapHandler } - - $Credential = New-Credential -UserName "$DomainName\$UserName" -Password $Password - - # Add required windows features - Add-WindowsFeatureWrapper ` - -Name "DNS","AD-Domain-Services","RSAT-DFS-Mgmt-Con" ` - -IncludeManagementTools ` - -NotifyRestart - - - Write-Log "Adding secondary domain controller ..." - - $SMAP = ConvertTo-SecureString -String $SafeModePassword -AsPlainText -Force - Install-ADDSDomainController ` - -DomainName $DomainName ` - -SafeModeAdministratorPassword $SMAP ` - -Credential $Credential ` - -NoRebootOnCompletion ` - -Force ` - -ErrorAction Stop | Out-Null + $Credential = New-Credential -UserName "$DomainName\$UserName" -Password $Password + + # Add required windows features + Add-WindowsFeatureWrapper ` + -Name "DNS","AD-Domain-Services","RSAT-DFS-Mgmt-Con" ` + -IncludeManagementTools ` + -NotifyRestart + - Write-Log "Waiting for restart ..." - # Stop-Execution -ExitCode 3010 -ExitString "Computer must be restarted to finish domain controller promotion." - # Write-Log "Restarting computer ..." - # Restart-Computer -Force - } + Write-Log "Adding secondary domain controller ..." + + $SMAP = ConvertTo-SecureString -String $SafeModePassword -AsPlainText -Force + + Install-ADDSDomainController ` + -DomainName $DomainName ` + -SafeModeAdministratorPassword $SMAP ` + -Credential $Credential ` + -NoRebootOnCompletion ` + -Force ` + -ErrorAction Stop | Out-Null + + Write-Log "Waiting for restart ..." + # Stop-Execution -ExitCode 3010 -ExitString "Computer must be restarted to finish domain controller promotion." + # Write-Log "Restarting computer ..." + # Restart-Computer -Force + } } diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Join-Domain.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Join-Domain.ps1 index 403ef79..9e62e80 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Join-Domain.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Join-Domain.ps1 @@ -11,13 +11,13 @@ Executes "Join domain" action. Requires 'CoreFunctions' module #> - param ( - [String] $DomainName = '', - [String] $UserName = '', - [String] $Password = '', - [String] $OUPath = '', + param ( + [String] $DomainName = '', + [String] $UserName = '', + [String] $Password = '', + [String] $OUPath = '', [Switch] $AllowRestart - ) + ) begin { Show-InvocationInfo $MyInvocation } @@ -28,32 +28,32 @@ Requires 'CoreFunctions' module trap { &$TrapHandler } - - if ($UserName -eq '') { - $UserName = 'Administrator' - } - $Credential = New-Credential -UserName "$DomainName\$UserName" -Password $Password + if ($UserName -eq '') { + $UserName = 'Administrator' + } + + $Credential = New-Credential -UserName "$DomainName\$UserName" -Password $Password - if (Test-ComputerName -DomainName $DomainName -ErrorAction 'SilentlyContinue') { + if (Test-ComputerName -DomainName $DomainName -ErrorAction 'SilentlyContinue') { Write-LogWarning "Computer already joined to domain '$DomainName'" - } - else { - Write-Log "Joining computer to domain '$DomainName' ..." - - if ($OUPath -eq '') { - Add-Computer -DomainName $DomainName -Credential $Credential -Force - } - else { - Add-Computer -DomainName $DomainName -Credential $Credential -OUPath $OUPath -Force - } + } + else { + Write-Log "Joining computer to domain '$DomainName' ..." + + if ($OUPath -eq '') { + Add-Computer -DomainName $DomainName -Credential $Credential -Force + } + else { + Add-Computer -DomainName $DomainName -Credential $Credential -OUPath $OUPath -Force + } $null = Exec 'ipconfig' @('/registerdns') -RedirectStreams Write-Log "Waiting 30 seconds to restart ..." Start-Sleep -Seconds 30 - <# + <# if ($AllowRestart) { Write-Log "Restarting computer ..." Restart-Computer -Force @@ -62,6 +62,6 @@ Requires 'CoreFunctions' module Write-Log "Please restart the computer now." } #> - } + } } } diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Set-LocalUserPassword.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Set-LocalUserPassword.ps1 index 8708a0f..254ea54 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Set-LocalUserPassword.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Set-LocalUserPassword.ps1 @@ -20,11 +20,11 @@ Function Set-LocalUserPassword { trap { &$TrapHandler } - + if ((Get-WmiObject Win32_UserAccount -Filter "LocalAccount = 'True' AND Name='$UserName'") -eq $null) { throw "Unable to find local user account '$UserName'" } - + if ($Force) { Write-Log "Changing password for user '$UserName' to '*****'" # :) $null = ([ADSI] "WinNT://./$UserName").SetPassword($Password) From 299d386ae151303326121275a73a5897cb948e65 Mon Sep 17 00:00:00 2001 From: Dmitry Teselkin Date: Mon, 11 Aug 2014 13:11:42 +0400 Subject: [PATCH 2/6] Use WMI to get DNS listening IP --- .../Resources/scripts/Get-DnsListeningIpAddress.ps1 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Get-DnsListeningIpAddress.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Get-DnsListeningIpAddress.ps1 index 1db0b85..d058f75 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Get-DnsListeningIpAddress.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Get-DnsListeningIpAddress.ps1 @@ -1,7 +1,12 @@ function Get-DnsListeningIpAddress { - Import-Module DnsServer + $wmiDnsServer = Get-WmiObject -Namespace root\MicrosoftDNS -Class MicrosoftDNS_Server - (Get-DNSServer -ComputerName localhost).ServerSetting.ListeningIpAddress | - Where-Object { $_ -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" } + $ListenAddresses = $wmiDnsServer.ListenAddresses + + if ($ListenAddresses -eq $null) { + $ListenAddresses = $wmiDnsServer.ServerAddresses + } + + $ListenAddresses | Where-Object { $_ -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" } } From 0f54a58878bafd32d14f962b539dbca2005fb922 Mon Sep 17 00:00:00 2001 From: Dmitry Teselkin Date: Mon, 11 Aug 2014 15:52:08 +0400 Subject: [PATCH 3/6] Some fixes --- .../Install-RolePrimaryDomainController.ps1 | 2 +- .../Install-RoleSecondaryDomainController.ps1 | 69 ++++++++++++++----- .../Resources/scripts/Join-Domain.ps1 | 4 +- 3 files changed, 54 insertions(+), 21 deletions(-) diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 index 09822aa..82bbb2c 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 @@ -21,7 +21,7 @@ Function Install-RolePrimaryDomainController { } $OSVersion = [System.Environment]::OSVersion.Version - $VersionString = $OSVersion.Major + '.' + $OSVersion.Minor + $VersionString = "$($OSVersion.Major).$($OSVersion.Minor)" switch ($VersionString) { '6.1' { diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 index bc8a866..1b3c9fc 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 @@ -40,30 +40,63 @@ Install additional (secondary) domain controller. &$TrapHandler } - $Credential = New-Credential -UserName "$DomainName\$UserName" -Password $Password + $OSVersion = [System.Environment]::OSVersion.Version + $VersionString = "$($OSVersion.Major).$($OSVersion.Minor)" - # Add required windows features - Add-WindowsFeatureWrapper ` - -Name "DNS","AD-Domain-Services","RSAT-DFS-Mgmt-Con" ` - -IncludeManagementTools ` - -NotifyRestart + switch($VersionString) { + '6.1' { + Import-Module ServerManager + + Add-WindowsFeature -Name "DNS","ADDS-Domain-Controller","RSAT-DFS-Mgmt-Con" + + Write-Log "Adding secondary domain controller ..." +<# + $DcPromoArgs = @( + '/unattend', + '/InstallDns:yes', + '/confirmGC:yes', + '/replicaOrNewDomain:replica', + '/databasePath:"e:\ntds"', + '/logPath:"e:\ntdslogs"', + '/sysvolpath:"g:\sysvol"', + '/safeModeAdminPassword:M6$,U8Gvx4', + '/rebootOnCompletion:yes' + ) +#> + $DcPromoArgs = @( + '/unattend', + '/installDns:yes', + '/confirmGC:yes', + '/replicaOrNewDomain:replica', + "/safeModeAdminPassword:${SafeModePassword}", + '/rebootOnCompletion:no' + ) + + Exec 'dcpromo' $DcPromoArgs + } + default { + $Credential = New-Credential -UserName "$DomainName\$UserName" -Password $Password + # Add required windows features + Add-WindowsFeatureWrapper ` + -Name "DNS","AD-Domain-Services","RSAT-DFS-Mgmt-Con" ` + -IncludeManagementTools ` + -NotifyRestart - Write-Log "Adding secondary domain controller ..." + Write-Log "Adding secondary domain controller ..." - $SMAP = ConvertTo-SecureString -String $SafeModePassword -AsPlainText -Force + $SMAP = ConvertTo-SecureString -String $SafeModePassword -AsPlainText -Force - Install-ADDSDomainController ` - -DomainName $DomainName ` - -SafeModeAdministratorPassword $SMAP ` - -Credential $Credential ` - -NoRebootOnCompletion ` - -Force ` - -ErrorAction Stop | Out-Null + Install-ADDSDomainController ` + -DomainName $DomainName ` + -SafeModeAdministratorPassword $SMAP ` + -Credential $Credential ` + -NoRebootOnCompletion ` + -Force ` + -ErrorAction Stop | Out-Null + } + } Write-Log "Waiting for restart ..." - # Stop-Execution -ExitCode 3010 -ExitString "Computer must be restarted to finish domain controller promotion." - # Write-Log "Restarting computer ..." - # Restart-Computer -Force } } diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Join-Domain.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Join-Domain.ps1 index 9e62e80..37aacdb 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Join-Domain.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Join-Domain.ps1 @@ -53,7 +53,7 @@ Requires 'CoreFunctions' module Write-Log "Waiting 30 seconds to restart ..." Start-Sleep -Seconds 30 - <# +<# if ($AllowRestart) { Write-Log "Restarting computer ..." Restart-Computer -Force @@ -61,7 +61,7 @@ Requires 'CoreFunctions' module else { Write-Log "Please restart the computer now." } - #> +#> } } } From 517c348c8d81764816566a5130a4ec09700490b6 Mon Sep 17 00:00:00 2001 From: Dmitry Teselkin Date: Mon, 11 Aug 2014 17:39:36 +0400 Subject: [PATCH 4/6] Fix --- .../Classes/ActiveDirectory.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/ActiveDirectory.yaml b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/ActiveDirectory.yaml index 825e765..4b4ef12 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/ActiveDirectory.yaml +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Classes/ActiveDirectory.yaml @@ -25,7 +25,7 @@ Properties: Contract: $.string().notNull() Default: P@ssw0rd -Workflow:: +Workflow: initialize: Body: - $.environment: $.find(std:Environment).require() From ff41e53f510edd931231164421ee36e7818b6c81 Mon Sep 17 00:00:00 2001 From: Dmitry Teselkin Date: Tue, 12 Aug 2014 10:58:51 +0400 Subject: [PATCH 5/6] Fix ADDS scripts --- .../scripts/Install-RolePrimaryDomainController.ps1 | 5 +++-- .../scripts/Install-RoleSecondaryDomainController.ps1 | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 index 82bbb2c..46cb7e9 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RolePrimaryDomainController.ps1 @@ -27,7 +27,8 @@ Function Install-RolePrimaryDomainController { '6.1' { Import-Module ServerManager - Add-WindowsFeature -Name "DNS","ADDS-Domain-Controller","RSAT-DFS-Mgmt-Con" + Add-WindowsFeature ADDS-Domain-Controller + Add-WindowsFeature RSAT-DFS-Mgmt-Con Write-Log "Creating first domain controller ..." <# @@ -61,7 +62,7 @@ Function Install-RolePrimaryDomainController { '/rebootOnCompletion:no' ) - Exec 'dcpromo' $DcPromoArgs + $null = Exec 'dcpromo' $DcPromoArgs -RedirectStreams } default { Add-WindowsFeatureWrapper ` diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 index 1b3c9fc..5f2ecc5 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/Resources/scripts/Install-RoleSecondaryDomainController.ps1 @@ -47,7 +47,8 @@ Install additional (secondary) domain controller. '6.1' { Import-Module ServerManager - Add-WindowsFeature -Name "DNS","ADDS-Domain-Controller","RSAT-DFS-Mgmt-Con" + Add-WindowsFeature ADDS-Domain-Controller + Add-WindowsFeature RSAT-DFS-Mgmt-Con Write-Log "Adding secondary domain controller ..." <# @@ -72,7 +73,7 @@ Install additional (secondary) domain controller. '/rebootOnCompletion:no' ) - Exec 'dcpromo' $DcPromoArgs + $null = Exec 'dcpromo' $DcPromoArgs -RedirectStreams } default { $Credential = New-Credential -UserName "$DomainName\$UserName" -Password $Password From a106c0b5e2f8fa98e3223ccc98738c6a85be4917 Mon Sep 17 00:00:00 2001 From: Dmitry Teselkin Date: Fri, 15 Aug 2014 05:20:19 -0400 Subject: [PATCH 6/6] AD fixes --- .../io.murano.windows.ActiveDirectory/manifest.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/murano-apps-0.5/io.murano.windows.ActiveDirectory/manifest.yaml b/murano-apps-0.5/io.murano.windows.ActiveDirectory/manifest.yaml index a580975..7bf4027 100644 --- a/murano-apps-0.5/io.murano.windows.ActiveDirectory/manifest.yaml +++ b/murano-apps-0.5/io.murano.windows.ActiveDirectory/manifest.yaml @@ -2,7 +2,7 @@ Format: 1.0 Type: Application -FullName: io.murano.windows.ActiveDirectory +FullName: io.murano.windows.activeDirectory.ActiveDirectory Name: Active Directory @@ -24,4 +24,4 @@ Classes: # UI: ui.yaml # default to ui.yaml, will use default if skipped -Logo: logo2.png # defaults to logo.png, will use default if skipped \ No newline at end of file +Logo: logo2.png # defaults to logo.png, will use default if skipped