因此,我们希望让开发人员能够以本地方式访问AWS,并且在构buildWindows计算机时,它会自动join域,并且可能会添加一些工具等。由于我习惯于使用本地Amazon AMI而不使用域基础结构,因此最好这样做的方式?
感谢任何帮助!
亚马逊最近通过新的亚马逊目录服务使这个过程更加容易。 您可以运行独立AD域“简单AD”或通过“AD连接器”将现有AS扩展到AWS
基本上,Amazon提供了一种称为“SSM”或简单系统pipe理器的function ,可以帮助您pipe理Windows实例。 其中一个设施是“域名join”。 一旦你有你的示例AD设置,你可以使用下面描述的域join设施。 基本上,您创build一个“SSM”文档与您的广告细节,并将此文档与您的实例。
这是我以前使用过的 – 只要确保你有域名基础设施:
$UserData = [System.Convert]::ToBase64String( [System.Text.Encoding]::ASCII.GetBytes(@' <powershell> Get-NetFirewallRule | Where { $_.DisplayName -eq “Windows Management Instrumentation (ASync-In)” } | Enable-NetFirewallRule Get-NetFirewallRule | Where { $_.DisplayName -eq “Windows Management Instrumentation (DCOM-In)” } | Enable-NetFirewallRule Get-NetFirewallRule | Where { $_.DisplayName -eq “Windows Management Instrumentation (WMI-In)” } | Enable-NetFirewallRule </powershell> '@)) $Reservation = New-EC2Instance - ImageId $AMI -KeyName $KeyName -SubnetId $SubnetId -InstanceType $InstanceType -MinCount 1 -MaxCount 1 -UserData $UserData $Instance = $Reservation.RunningInstance[0].InstanceId $IP = $Reservation.RunningInstance[0].PrivateIpAddress $Tag = New-Object Amazon.EC2.Model.Tag $Tag.Key = 'Name' $Tag.Value = $ServerName New-EC2Tag -ResourceId $Instance -Tag $Tag $LocalPassword = $null While( $LocalPassword -eq $null) { Try { Write-Host “Waiting for Password.” $LocalPassword = Get-EC2PasswordData -InstanceId $InstanceId -PemFile $PemFile -ErrorAction SilentlyContinue ]Catch{} Start-Sleep -s 60 $DomainPassword = $DomainPassword | ConvertTo-SecureString -asPlainText -Force $DomainCredential = New-Object System.Management.Automation.PSCredential(“administrator”, $LocalPassword) Add-Computer -ComputerName $LocalComputer -LocalCredential $LocalCredential -NewName $ServerName -DomainName $DomainName -Credential $DomainCredential -Restart -Force