AWS CodeDeploy Powershell脚本无法创建网站&;IIS服务器中的池

AWS CodeDeploy Powershell脚本无法创建网站&;IIS服务器中的池,powershell,amazon-web-services,iis,windows-server-2012-r2,aws-code-deploy,Powershell,Amazon Web Services,Iis,Windows Server 2012 R2,Aws Code Deploy,我有一个应用程序正在使用AWS Codedeploy部署到运行Windows Server 2012 R2并安装了code deploy agent的EC2实例 代码修订版已成功从S3 bucket下载到EC2实例,但PowerShell脚本引发错误 仅通知您,在EC2实例中手动执行脚本时,它正在成功运行 以下是my appspec.yml&before-install.bat appspec.yml 版本:0.0 操作系统:windows 文件夹: -来源:\index.html 目标:C:

我有一个应用程序正在使用AWS Codedeploy部署到运行Windows Server 2012 R2并安装了code deploy agent的EC2实例

代码修订版已成功从S3 bucket下载到EC2实例,但PowerShell脚本引发错误

仅通知您,在EC2实例中手动执行脚本时,它正在成功运行

以下是my appspec.yml&before-install.bat

  • appspec.yml

    版本:0.0
    操作系统:windows
    文件夹:
    -来源:\index.html
    目标:C:\DemoApp\MySite
    挂钩:
    安装前:
    -位置:\before-install.bat
    超时:900

  • 安装之前。bat

    C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe-Command“&{Import Module WebAdministration;新项目iis:\Sites\MySite-bindings@{protocol=\“http\”bindingInformation=\”:80:\“}-physicalPath C:\DemoApp\MySite;新项目iis:\AppPools\MyPool;Set ItemProperty iis:\Sites\MySite-name applicationPool-value MyPool;}”

code部署代理部署。日志

脚本-\before-install.bat C:\Windows\system32>C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe-Command“&{Set ExecutionPolicy Unrestricted;导入模块WebAdministration;新项目iis:\Sites\MySite-bindings@{protocol=\“http\”;bindingInformation=\:80:\”}-physicalPath c:\DemoApp\MySite;新项目IIS:\AppPools\MyPool;Set-ItemProperty IIS:\Sites\MySite-名称applicationPool-值MyPool;}” 新项:无法检索cmdlet的动态参数。收回 具有CLSID的组件的COM类工厂 {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6}由于以下错误而失败: 80040154类未注册(HRESULT异常:0x80040154 (REGDB_E_CLASSNOTREG))。 第1行字符:71 +&{设置不受限制的ExecutionPolicy;导入模块WebAdministration; 新项目一。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ +类别信息:InvalidArgument:(:)[新项],参数Bindin gException +FullyQualifiedErrorId:GetDynamicParametersException,Microsoft.PowerShe ll.Commands.NewItemCommand

尝试以下脚本:

if ($PSHOME -like "*SysWOW64*")
{
  Write-Warning "Restarting this script under 64-bit Windows PowerShell."

  & (Join-Path ($PSHOME -replace "SysWOW64", "SysNative") powershell.exe) -File `
    (Join-Path $PSScriptRoot $MyInvocation.MyCommand) @args

  Exit $LastExitCode
}

Import-Module WebAdministration; 
New-Item IIS:\AppPools\MyPool;
New-Item iis:\Sites\MySite -bindings @{protocol='http';bindingInformation=':80:'} -physicalPath c:\DemoApp\MySite;
Set-ItemProperty IIS:\Sites\MySite -name applicationPool -value MyPool
参考