У меня есть базовое приложение dotnet, которое я развертываю на AWS через конвейер Azure DevOps Services. Для развертывания мой комплект развертывания содержит файл aws-windows-deploy-manifest.json.
В этом файле я вызываю скрипт PowerShell через postInstall. Для получения дополнительной информации см.
Как получить скрипт PowerShell postInstall, работающий с экземпляром AWS Beanstalk для Windows
Сценарий PowerShell работает должным образом и получаетвызывается во время развертывания AWS Beanstalk.
Однако следующая команда в скрипте PowerShell не работала:
Enable-WindowsOptionalFeature -online -featureName TelnetClient -all
Я отладил проблему и обнаружил, что несколько модулей Powershell (например, ServerManager) отсутствуют ТОЛЬКО во время развертывания. Например, во время развертывания каталог C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ ServerManager не существует.
Во время развертывания я обнаружил, что пользователем развертывания является NT AUTHORITY \ SYSTEM
Когда я в интерактивном режиме подключаюсь к системе Windows AWS Beanstalk как администратор через RDC, C: \ Windows \ System32 \Модуль WindowsPowerShell \ v1.0 \ Modules \ ServerManager существует.
Когда я вхожу в систему Windows AWS Beanstalk в качестве администратора в интерактивном режиме через RDC и psexec как NT AUTHORITY \ SYSTEM, C: \ Windows \ System32 \ WindowsPowerShell \v1.0 \ Modules \ ServerManager module.
Во время развертывания присутствуют только следующие модули PowerShell:
Directory: C:\Windows\System32\WindowsPowerShell\v1.0\Modules
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---s- 7/16/2016 1:23 PM AppLocker
d---s- 9/6/2019 6:51 AM AppvClient
d----- 7/16/2016 1:23 PM Appx
d---s- 7/16/2016 1:23 PM BitsTransfer
d---s- 7/16/2016 1:23 PM BranchCache
d----- 7/16/2016 1:23 PM CimCmdlets
d----- 7/16/2016 1:23 PM DirectAccessClientComponents
d----- 10/9/2019 7:01 AM Dism
d----- 7/16/2016 1:23 PM DnsClient
d----- 7/16/2016 1:23 PM EventTracingManagement
d---s- 10/24/2019 10:25 AM IISAdministration
d---s- 7/16/2016 1:23 PM International
d----- 7/16/2016 1:23 PM iSCSI
d----- 9/12/2016 11:22 AM IscsiTarget
d----- 7/16/2016 1:23 PM ISE
d---s- 7/16/2016 1:23 PM Kds
d----- 11/19/2018 4:14 AM Microsoft.PowerShell.Archive
d----- 7/16/2016 1:23 PM Microsoft.PowerShell.Diagnosti
cs
d----- 7/16/2016 1:23 PM Microsoft.PowerShell.Host
d----- 7/16/2016 1:23 PM Microsoft.PowerShell.Managemen
t
d----- 6/13/2018 7:22 AM Microsoft.PowerShell.ODataUtil
s
d----- 7/16/2016 1:23 PM Microsoft.PowerShell.Security
d----- 7/16/2016 1:23 PM Microsoft.PowerShell.Utility
d----- 7/16/2016 1:23 PM Microsoft.WSMan.Management
d----- 9/12/2016 11:22 AM MsDtc
d----- 7/16/2016 1:23 PM NetAdapter
d----- 7/16/2016 1:23 PM NetConnection
d----- 7/16/2016 1:23 PM NetEventPacketCapture
d----- 7/16/2016 1:23 PM NetLbfo
d----- 7/16/2016 1:23 PM NetNat
d----- 7/16/2016 1:23 PM NetQos
d----- 9/12/2016 11:22 AM NetSecurity
d----- 7/16/2016 1:23 PM NetSwitchTeam
d----- 7/11/2018 3:17 AM NetTCPIP
d----- 7/16/2016 1:23 PM NetworkConnectivityStatus
d----- 7/16/2016 1:23 PM NetworkTransition
d---s- 7/16/2016 1:23 PM PKI
d----- 7/16/2016 1:23 PM PnpDevice
d---s- 10/24/2019 10:25 AM PowerShellWebAccess
d----- 7/16/2016 1:23 PM PrintManagement
d---s- 6/13/2018 7:22 AM PSDesiredStateConfiguration
d----- 7/16/2016 1:23 PM PSDiagnostics
d----- 7/16/2016 1:23 PM PSScheduledJob
d----- 7/16/2016 1:23 PM ScheduledTasks
d---s- 9/12/2016 11:22 AM SecureBoot
d---s- 7/16/2016 1:23 PM SecurityCmdlets
d---s- 9/12/2016 11:22 AM SmbShare
d----- 9/6/2019 6:51 AM Storage
d---s- 7/16/2016 1:23 PM TLS
d----- 9/12/2016 11:22 AM TroubleshootingPack
d---s- 9/12/2016 11:22 AM TrustedPlatformModule
d---s- 9/12/2016 11:29 AM UEV
d----- 9/12/2016 11:22 AM VpnClient
d----- 7/16/2016 1:23 PM Wdac
d----- 10/24/2019 10:25 AM WebAdministration
d---s- 9/12/2016 11:22 AM Whea
d----- 7/16/2016 1:23 PM WindowsDeveloperLicense
d----- 7/16/2016 1:23 PM WindowsErrorReporting
d----- 7/16/2016 1:23 PM WindowsUpdate
Вот что мой файл aws-windows-deploy-manifest.jsonвыглядит так:
{
"manifestVersion": 1,
"deployments": {
"aspNetCoreWeb": [
{
"name": "hedwig-spa",
"parameters": {
"appBundle": "site.zip",
"iisPath": "/",
"iisWebSite": "Default Web Site"
},
"scripts": {
"postInstall": {
"file": "C:\\path-here\\postinstall.ps1"
}
}
}
]
}
}
Вот команды, которые не выполняются в файле PostInstallSetup.ps1:
Enable-WindowsOptionalFeature -online -featureName TelnetClient -all > c:/cfn/installer-feature-telnet.log
Install-WindowsFeature -name Telnet-Client -LogPath c:/cfn/installer-telnet.log
Кто-нибудь знает, почему некоторые модули PowerShell отсутствуют во время развертывания AWS Beanstalk? Можно ли вызвать следующую команду во время развертывания:
Enable-WindowsOptionalFeature -online -featureName TelnetClient -all