Пользовательские данные: установка IIS на Windows Server 2016

Я пытаюсь написать сценарий новой настройки сервера в AWS, на котором будет установлен IIS. Я пытаюсь сделать это с помощью пользовательских данных:

<powershell> 
Start-Transcript; 

# Set Default Password for Testing
net user "Administrator" "Password.1"; 

# Install IIS
Import-Module ServerManager; 
Install-WindowsFeature web-server, web-webserver -IncludeAllSubFeature; 
Install-WindowsFeature web-mgmt-tools; 

# Configure Bindings to :443
New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https -SslFlags 0;
$newCert = New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My; 
$SslBinding = Get-WebBinding -Name "Default Web Site" -Protocol "https";
$SslBinding.AddSslCertificate($newCert.GetCertHashString(), "my"); 
Get-WebBinding -Port 80 -Name "Default Web Site" | Remove-WebBinding;

# Install CodeDeploy Agent 
Import-Module AWSPowerShell; 
New-Item -Path "C:\Temp" -ItemType "directory" -Force; 
Read-S3Object -BucketName aws-codedeploy-us-east-1 -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi; 
c:\temp\codedeploy-agent.msi /quiet /l c:\temp\host-agent-install-log.txt;
</powershell>

Моя проблема заключается в том, что для того, чтобы установка действительно завершилась, мне нужно подключить удаленный рабочий стол к машине.

Учитывая, что это будет в группе автоматического масштабирования, нецелесообразно подключать удаленный рабочий стол к серверам, поскольку они раскручиваются для удовлетворения спроса.

Почему мне нужно подключиться к удаленному рабочему столу для завершения сценария? Могу ли я написать сценарий таким образом, чтобы мне не нужно было подключаться к серверам по протоколу RDP во время их запуска?


person Chris    schedule 30.01.2018    source источник
comment
Мне удалось установить IIS с помощью сценария Userdata с помощью команды Enable-WindowsOptionalFeature с установленным флагом -NoRestart: Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName 'IIS-WebServerRole', 'IIS-WebServer', 'IIS-ManagementConsole'.   -  person Adil B    schedule 30.01.2018
comment
Спасибо! Это сделано - я поставил это как ответ на случай, если кто-то еще столкнется с этой проблемой.   -  person Chris    schedule 30.01.2018
comment
Потрясающий! Рад помочь!   -  person Adil B    schedule 30.01.2018


Ответы (2)


Мне удалось установить IIS с помощью сценария Userdata с помощью команды Enable-WindowsOptionalFeature с установленным флагом -NoRestart: Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName 'IIS-WebServerRole', 'IIS-WebServer', 'IIS-ManagementConsole'

person Adil B    schedule 30.01.2018

Благодаря Адилю Б выше. Я решил это, изменив способ установки функций. Новый скрипт выглядит так:

<powershell> 
Start-Transcript; 

# Install IIS
Import-Module ServerManager; 
Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName 'IIS-WebServerRole', 'IIS-WebServer', 'IIS-ManagementConsole';

# Configure Bindings to :443
New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https -SslFlags 0;
$newCert = New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My; 
$SslBinding = Get-WebBinding -Name "Default Web Site" -Protocol "https";
$SslBinding.AddSslCertificate($newCert.GetCertHashString(), "my"); 
Get-WebBinding -Port 80 -Name "Default Web Site" | Remove-WebBinding;

# Install CodeDeploy Agent 
Import-Module AWSPowerShell; 
New-Item -Path "C:\Temp" -ItemType "directory" -Force; 
Read-S3Object -BucketName aws-codedeploy-us-east-1 -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi; 
c:\temp\codedeploy-agent.msi /quiet /l c:\temp\host-agent-install-log.txt;
</powershell>
person Chris    schedule 30.01.2018