この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ご機嫌いかがでしょうか、豊崎です。
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から実行できます。今回は追加ディスクの操作をおこなってみました。誰かのお役にたてば、幸甚です。