RunCommandでWindowsの追加ディスクにドライブレターを割り当ててみた
ご機嫌いかがでしょうか、豊崎です。
RunCommandでWindows2016の追加ディスクにドライブレターを割り当てる機会がありましたので、書いていきたいと思います。
Windows2012R2とWindows2016の追加ディスクに対する構築時の挙動の違いが本記事を書くきっかけになりました。
差異は以下となります。(2017/07/26時点)
- Windows2012R2 > Onlineでドライブレターが割り当てられている
- Windows2016 > Offline
前提
- 確認のために、以下2つAMIからEC2を起動
- Windows2012R2(日本語OS) ami-249fad43
- Windows2016(日本語OS) ami-186f757f
- 起動時にDドライブ用の追加ディスクを選択
- IAMRoleでRunCommandの実行権限を付与
起動直後のDiskの状態
各EC2の起動直後における、Diskの状態を確認してみます。
実行コマンド
RunCommandでAWS-RunPowerShellScriptと対象インスタンスを選択し以下コマンドを実行しました
Get-Disk Get-Volume
Windows2012R2(日本語OS) ami-249fad43
Number Friendly Name Operationa Total Size Partition lStatus Style ------ ------------- ---------- ---------- --------- 1 AWS PVDISK SCSI Disk Device Online 35 GB MBR 0 AWS PVDISK SCSI Disk Device Online 50 GB MBR DriveLetter : DriveType : Fixed FileSystem : NTFS FileSystemLabel : HealthStatus : Healthy ObjectId : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ Path : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ Size : 366997504 SizeRemaining : 62029824 PSComputerName : DriveLetter : D DriveType : Fixed FileSystem : NTFS FileSystemLabel : HealthStatus : Healthy ObjectId : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ Path : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ Size : 37578862592 SizeRemaining : 37490626560 PSComputerName : DriveLetter : C DriveType : Fixed FileSystem : NTFS FileSystemLabel : HealthStatus : Healthy ObjectId : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ Path : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ Size : 53317988352 SizeRemaining : 33756291072 PSComputerName :
Windows2016(日本語OS) ami-186f757f
Number Friendly Name Serial Number HealthStatus OperationalStatus ------ -------- ------------- ------------ ---------------- 0 A 0000 Healthy Online 1 A 0001 Healthy Offline ObjectId : {1}\\EC2AMAZ-B1VELUJ\root/Microsoft/Windows/Storage/Prov iders_v2\WSP_Volume.ObjectId="{XXXXXXXX-XXXX-XXXX-XXXX-X XXXXXXXXXXX}:VO:\\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXX XXXXXXX}\" PassThroughClass : PassThroughIds : PassThroughNamespace : PassThroughServer : UniqueId : \\?\Volume{XXXXXXXX-0000-0000-0000-100000000000}\ AllocationUnitSize : 4096 DedupMode : NotAvailable DriveLetter : C DriveType : Fixed FileSystem : NTFS FileSystemLabel : Windows FileSystemType : NTFS HealthStatus : Healthy OperationalStatus : OK Path : \\?\Volume{XXXXXXXX-0000-0000-0000-100000000000}\ Size : 53684989952 SizeRemaining : 38604296192 PSComputerName :
Windows2012r2では追加ディスクが自動的にDドライブとして認識されていますが、 Windows2016では追加ディスクはオフラインになっています。
RunCommandで追加ドライブの操作
それでは、RunCommandでWindows2016の追加ディスクをDドライブとして利用できる状態にしていきたいと思います。
実行コマンド
RunCommandでAWS-RunPowerShellScriptと対象インスタンスを選択し以下コマンドを実行します。
今回はDドライブのみの追加を想定して、マッチ条件を「Offline」で対象ディスクを抽出しています。
$adddisk = Get-Disk | where OperationalStatus -match Offline $adddisk | Set-Disk -IsOffline $false $adddisk | Set-Disk -IsReadOnly $false $adddisk | Initialize-Disk -PartitionStyle GPT $adddisk | New-Partition -UseMaximumSize -DriveLetter "D" Format-Volume -DriveLetter "D" -FileSystem NTFS -Force
実行後改めて、以下を実行してください。
実行コマンド
RunCommandでAWS-RunPowerShellScriptと対象インスタンスを選択し以下コマンドを実行します。
Get-Disk Get-Volume
結果
Number Friendly Name Serial Number HealthStatus OperationalStatus ------ -------- ------------- ------------ ---------------- 0 A 0000 Healthy Online 1 A 0001 Healthy Online ObjectId : {1}\\EC2AMAZ-B1VELUJ\root/Microsoft/Windows/Storage/Prov iders_v2\WSP_Volume.ObjectId="{XXXXXXXX-XXXX-XXXX-XXXX-X XXXXXXXXXXX}:VO:\\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXX XXXXXXX}\" PassThroughClass : PassThroughIds : PassThroughNamespace : PassThroughServer : UniqueId : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ AllocationUnitSize : 4096 DedupMode : NotAvailable DriveLetter : C DriveType : Fixed FileSystem : NTFS FileSystemLabel : Windows FileSystemType : NTFS HealthStatus : Healthy OperationalStatus : OK Path : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ Size : 53684989952 SizeRemaining : 38603206656 PSComputerName : ObjectId : {1}\\EC2AMAZ-B1VELUJ\root/Microsoft/Windows/Storage/Prov iders_v2\WSP_Volume.ObjectId="{XXXXXXXX-XXXX-XXXX-XXXX-X XXXXXXXXXXX}:VO:\\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXX XXXXXXX}\" PassThroughClass : PassThroughIds : PassThroughNamespace : PassThroughServer : UniqueId : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ AllocationUnitSize : 4096 DedupMode : NotAvailable DriveLetter : D DriveType : Fixed FileSystem : NTFS FileSystemLabel : FileSystemType : NTFS HealthStatus : Healthy OperationalStatus : OK Path : \\?\Volume{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\ Size : 26707226624 SizeRemaining : 26632945664 PSComputerName :
無事、追加ディスクがDドライブとして認識されていることが確認できました。
さいごに
RunCommandの実行ができるロールが付与されているEC2(Windows)であればPowershellで行える操作はAWSマネジメントコンソールやAWS-CLIから実行できます。今回は追加ディスクの操作をおこなってみました。誰かのお役にたてば、幸甚です。