在 EC2 Windows Server 2016 上,重新启动实例时自动挂载实例存储

在 EC2 Windows Server 2016 上,重新启动实例时自动挂载实例存储

我有一个基于 Amazon 提供的 Microsoft Windows Server 2016 AMI 的 AWS EC2 实例。我想使用临时实例存储。当我启动实例时,我可以登录并使用 Windows 的磁盘管理工具将我的实例存储挂载为驱动器号。

但是,如果我停止然后启动实例,则登录时实例存储不再挂载。每次重新启动实例时,我都必须再次使用 Windows 的磁盘管理工具重新挂载实例存储。

如何使实例存储自动显示为驱动器?

答案1

仅供参考,这里有一个更简单的解决方案,基于AWS EC2 文档

从 PowerShell 窗口运行以下命令。

    #initial disk 1st time: 
    C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1


    # schedule initial disk 
    C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1 -Schedule

答案2

配置Amazon提供的脚本C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1在系统启动时运行。

  1. 以管理员身份登录。

  2. 创建一个临时 XML 文件,其内容如下所示。

  3. 启动 Windows 任务计划程序。(开始 >> 管理工具 >> 任务计划程序)

  4. 选择操作导入任务...

  5. 选择您的临时 XML 文件。

  6. 按“确定”创建任务。

Amazon Ec2 启动 - 初始化 Disks.xml

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <URI>\Amazon Ec2 Launch - Initialize Disks</URI>
  </RegistrationInfo>
  <Triggers>
    <BootTrigger>
      <Enabled>true</Enabled>
    </BootTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <AllowHardTerminate>false</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>false</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>0</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Windows\System32\cmd.exe</Command>
      <Arguments>/C C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Unrestricted -File "C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1"</Arguments>
    </Exec>
  </Actions>
</Task>

我通过以下线索找到了答案这里

相关内容