Tous les produits
Search
Centre de documentation

CloudOps Orchestration Service:ACS-ECS-RepairWindowsBlueScreenIssue

Dernière mise à jour :Aug 12, 2026

Nom du modèle

ACS-ECS-RepairWindowsBlueScreenIssue

Exécuter maintenant

Description du modèle

Répare une instance ECS Windows sujette à un écran bleu.

Type de modèle

Automatisé

Propriétaire

Alibaba Cloud

Paramètres d'entrée

Paramètre

Description

Type

Obligatoire

Valeur par défaut

Limite

instanceId

ID de l'instance

String

Oui

password

Mot de passe de l'instance

String

Oui

regionId

ID de la région

String

Non

{{ ACS::RegionId }}

Paramètres de sortie

Aucun

Politique d'autorisations requise

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:AttachDisk",
                "ecs:AuthorizeSecurityGroup",
                "ecs:AuthorizeSecurityGroupEgress",
                "ecs:ConfigureSecurityGroupPermissions",
                "ecs:CreateSecurityGroup",
                "ecs:DeleteInstance",
                "ecs:DeleteSecurityGroup",
                "ecs:DescribeDisks",
                "ecs:DescribeInstances",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeInvocations",
                "ecs:DescribeNetworkInterfaces",
                "ecs:DescribeSecurityGroupAttribute",
                "ecs:DescribeSecurityGroups",
                "ecs:DetachDisk",
                "ecs:JoinResourceGroup",
                "ecs:ModifySecurityGroupEgressRule",
                "ecs:ModifySecurityGroupRule",
                "ecs:RunCommand",
                "ecs:RunInstances",
                "ecs:StartInstance",
                "ecs:StopInstance",
                "ecs:TagResources",
                "ecs:UntagResources"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ros:CreateStack",
                "ros:DeleteStack",
                "ros:GetStack"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "quotas:ListProductQuotas"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "rds:DescribeDBInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "slb:DescribeLoadBalancers"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "vpc:AssociateVpcCidrBlock",
                "vpc:CreateVSwitch",
                "vpc:CreateVpc",
                "vpc:DeleteVSwitch",
                "vpc:DeleteVpc",
                "vpc:DescribeVSwitches",
                "vpc:DescribeVpcs",
                "vpc:DescribeVpnGateways",
                "vpc:DescribeZones",
                "vpc:ModifyVSwitchAttribute",
                "vpc:ModifyVpcAttribute",
                "vpc:TagResources",
                "vpc:UnTagResources"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Détails

ACS-ECS-RepairWindowsBlueScreenIssue - détails

Contenu du modèle

FormatVersion: OOS-2019-06-01
Description:
  en: Solutions to Repair Windows System Blue Screen Issues
  zh-cn: Solutions to Repair Windows System Blue Screen Issues
  name-en: ACS-ECS-RepairWindowsBlueScreenIssue
  name-zh-cn: RepairWindowsBlueScreenIssue
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: Region ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  instanceId:
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::InstanceId
    AssociationPropertyMetadata:
      RegionId: regionId
    Label:
      en: InstanceId
      zh-cn: Instance ID
  password:
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::Password
    Label:
      en: ECS Instance Password
      zh-cn: ECS Instance Password
    NoEcho: true
RamRole: ''
Tasks:
  - Name: getZoneId
    Action: ACS::ExecuteApi
    Description:
      en: Get zoneId of ECS instance
      zh-cn: Get the zone of the ECS instance
    Properties:
      Service: ecs
      API: DescribeInstances
      Parameters:
        RegionId: '{{ regionId }}'
        InstanceIds:
          - '{{ instanceId }}'
    Outputs:
      zoneId:
        Type: String
        ValueSelector: .Instances.Instance[].ZoneId
      instanceType:
        Type: String
        ValueSelector: .Instances.Instance[].InstanceType
  - Name: createStack
    Action: ACS::ExecuteAPI
    Description:
      en: Create a VPC resource stack
      zh-cn: Create a VPC resource stack
    Properties:
      Service: ROS
      API: CreateStack
      Parameters:
        RegionId: '{{ regionId  }}'
        StackName: OOS-{{ACS::ExecutionId}}
        TimeoutInMinutes: 10
        DisableRollback: false
        Parameters:
          - ParameterKey: ZoneId
            ParameterValue: '{{ getZoneId.zoneId }}'
          - ParameterKey: VpcCidrBlock
            ParameterValue: 192.168.0.0/16
          - ParameterKey: VSwitchCidrBlock
            ParameterValue: 192.168.1.0/24
        TemplateBody: |
          ROSTemplateFormatVersion: '2015-09-01'
          Parameters:
            ZoneId:
              Type: String
            VpcCidrBlock:
              Type: String
            VSwitchCidrBlock:
              Type: String
          Resources:
            EcsVpc:
              Type: ALIYUN::ECS::VPC
              Properties:
                CidrBlock:
                  Ref: VpcCidrBlock
                VpcName:
                  Ref: ALIYUN::StackName
            EcsVSwitch:
              Type: ALIYUN::ECS::VSwitch
              Properties:
                ZoneId:
                  Ref: ZoneId
                VpcId:
                  Ref: EcsVpc
                CidrBlock:
                  Ref: VSwitchCidrBlock
            EcsSecurityGroup:
              Type: ALIYUN::ECS::SecurityGroup
              Properties:
                VpcId:
                  Ref: EcsVpc
          Outputs:
            SecurityGroupId:
              Value:
                Ref: EcsSecurityGroup
            VSwitchId:
              Value:
                Ref: EcsVSwitch
    Outputs:
      StackId:
        Type: String
        ValueSelector: StackId
  - Name: untilStackReady
    Action: ACS::WaitFor
    Description:
      en: Wait for the stack status CREATE_COMPLETE
      zh-cn: Wait for the stack to reach the CREATE_COMPLETE state
    OnError: deleteStack
    Retries: 10
    DelayType: Exponential
    Delay: 2
    BackOff: 2
    Properties:
      Service: ROS
      API: GetStack
      Parameters:
        RegionId: '{{ regionId  }}'
        StackId: '{{createStack.StackId}}'
      DesiredValues:
        - CREATE_COMPLETE
      StopRetryValues:
        - CREATE_FAILED
        - CHECK_FAILED
        - ROLLBACK_FAILED
        - ROLLBACK_COMPLETE
        - CREATE_ROLLBACK_COMPLETE
      PropertySelector: Status
      NotDesiredValues: []
    Outputs:
      securityGroupId:
        Type: String
        ValueSelector: Outputs[0].OutputValue
      vSwitchId:
        Type: String
        ValueSelector: Outputs[1].OutputValue
  - Name: runInstances
    Action: ACS::ECS::RunInstances
    Description:
      en: Create a temporary ECS instance
      zh-cn: Create a temporary ECS instance
    OnError: deleteStack
    Properties:
      regionId: '{{ regionId }}'
      imageId: wincore_2022_x64_dtc_en-us_40G_alibase_20240617.vhd
      instanceType: '{{ getZoneId.instanceType }}'
      securityGroupId: '{{ untilStackReady.securityGroupId }}'
      vSwitchId: '{{ untilStackReady.vSwitchId }}'
      systemDiskCategory: cloud_essd
      systemDiskSize: '40'
      internetMaxBandwidthIn: 0
      internetMaxBandwidthOut: 0
      amount: 1
    Outputs:
      instanceId:
        Type: String
        ValueSelector: instanceIds[0]
  - Name: StopInstance
    Action: ACS::ECS::StopInstance
    Description:
      en: Stop ECS instance pending repair.
      zh-cn: Stop the ECS instance pending repair.
    OnError: deleteInstance
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ instanceId }}'
      forceStop: true
  - Name: getDiskId
    Action: ACS::ExecuteApi
    Description:
      en: Get system disk ID of the ECS instance pending repair.
      zh-cn: Get the system disk ID of the ECS instance pending repair.
    Properties:
      Service: ecs
      API: DescribeDisks
      Parameters:
        RegionId: '{{ regionId }}'
        InstanceId: '{{ instanceId }}'
        DiskType: system
    Outputs:
      diskId:
        Type: String
        ValueSelector: .Disks.Disk[].DiskId
  - Name: detachSystemDisk
    Description:
      en: Detach the system disk from the ECS instance pending repair.
      zh-cn: Detach the system disk from the ECS instance pending repair.
    Action: ACS::ECS::DetachDisk
    OnError: deleteInstance
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ instanceId }}'
      diskId: '{{ getDiskId.diskId }}'
  - Name: attachDiskToTempInstance
    Action: ACS::ECS::AttachDisk
    Description:
      en: Attach disk to a temporary ECS instance.
      zh-cn: Attach the disk to a temporary ECS instance.
    OnError: deleteInstance
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ runInstances.instanceId }}'
      diskId: '{{ getDiskId.diskId }}'
  - Name: waitForAWhile
    Description:
      en: Wait for the system to become ready
      zh-cn: Wait for the system to become ready
    Action: ACS::Sleep
    Properties:
      Duration: PT4M
  - Name: runCommand
    Action: ACS::ECS::RunCommand
    Description:
      en: Run the repair command.
      zh-cn: Run the repair command.
    Properties:
      regionId: '{{ regionId }}'
      commandType: RunPowerShellScript
      instanceId: '{{ runInstances.instanceId }}'
      commandContent: |-
        $disks = Get-Disk
        $disks | ForEach-Object {
          if ($_.IsOffline) {
            Set-Disk -Number $_.Number -IsOffline $false
          }

          if ($_.IsReadOnly) {
            Set-Disk -Number $_.Number -IsReadOnly $false
          }
        }

        # Rename driver dir
        $driverDir = "D:\windows\system32\drivers\CrowdStrike"
        if (!(Test-Path $driverDir)) {
          Write-Host "driver path not found"
          exit 1
        }

        Rename-Item -Path $driverDir -NewName ($driverDir + ".bak")
  - Name: detachDisk
    Action: ACS::ECS::DetachDisk
    Description:
      en: Detach disk from the temporary instance.
      zh-cn: Detach the disk from the temporary instance.
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ runInstances.instanceId }}'
      diskId: '{{ getDiskId.diskId }}'
  - Name: attachDiskToOriginalInstance
    Action: ACS::ECS::AttachDisk
    Description:
      en: Attach the disk to the original instance.
      zh-cn: Attach the disk back to the original instance.
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ instanceId }}'
      diskId: '{{ getDiskId.diskId }}'
      bootable: true
      password: '{{ password }}'
  - Name: startInstance
    Action: ACS::ECS::StartInstance
    Description:
      en: Start the original instance.
      zh-cn: Start the original instance.
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ instanceId }}'
  - Name: deleteInstance
    Action: ACS::ExecuteAPI
    Description:
      en: Delete the temporary instance.
      zh-cn: Delete the temporary instance.
    Properties:
      Service: ECS
      API: DeleteInstance
      Risk: Normal
      Parameters:
        RegionId: '{{ regionId }}'
        InstanceId: '{{ runInstances.instanceId }}'
        Force: true
  - Name: deleteStack
    Action: ACS::ExecuteApi
    Description:
      en: Delete the VPC resource stack
      zh-cn: Delete the VPC resource stack
    Properties:
      Service: ROS
      API: DeleteStack
      Parameters:
        RegionId: '{{ regionId  }}'
        StackId: '{{ createStack.StackId }}'