gpt4 book ai didi

powershell - AWS CodeDeploy Powershell 脚本无法在 IIS 服务器中创建网站和池

转载 作者:行者123 更新时间:2023-12-03 18:18:58 25 4
gpt4 key购买 nike

我有一个使用 AWS Codedeploy 部署到运行 Windows Server 2012 R2 并安装了代码部署代理的 EC2 实例的应用程序。

代码修订已成功从 S3 存储桶下载到 EC2 实例,但 PowerShell 脚本抛出错误。

只是通知一下,在 EC2 实例中手动执行脚本时,它运行成功。

这是我的 appspec.yml 和 before-install.bat

  • appspec.yml
    version: 0.0
    os: windows
    files:
    - source: \index.html
    destination: C:\DemoApp\MySite
    hooks:
    BeforeInstall:
    - location: \before-install.bat
    timeout: 900
  • 安装前.bat
    C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -Command "& {Import-Module WebAdministration; New-Item iis:\Sites\MySite -bindings @{protocol=\"http\";bindingInformation=\":80:\"} -physicalPath c:\DemoApp\MySite; New-Item IIS:\AppPools\MyPool; Set-ItemProperty IIS:\Sites\MySite -name applicationPool -value MyPool;}"

  • codedeploy-agent-deployments.log

    脚本 -\before-install.bat
    C:\Windows\system32>C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -Command "& {Set-ExecutionPolicy Unrestricted; Import-Module WebAdministration; New-Item iis:\Sites\MySite -bindings @ {protocol=\"http\";bindingInformation=\":80:\"} -physicalPath c:\DemoApp\MySite; New-Item IIS:\AppPools\MyPool; Set-ItemProperty IIS:\Sites\MySite -name applicationPool -值我的池;}"
    新项目:无法检索 cmdlet 的动态参数。检索
    具有 CLSID 的组件的 COM 类工厂
    {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} 由于以下错误而失败:
    80040154 类未注册(HRESULT 异常:0x80040154
    (REGDB_E_CLASSNOTREG))。
    在行:1 字符:71
    + & {Set-ExecutionPolicy Unrestricted;导入模块 WebAdministration;
    新项目我...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~
    + CategoryInfo : InvalidArgument: (:) [New-Item], ParameterBindin
    异常
    + 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

    引用 http://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-deployments.html .

    关于powershell - AWS CodeDeploy Powershell 脚本无法在 IIS 服务器中创建网站和池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43849633/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com