4104152150x0701611Microsoft-Windows-PowerShell/Operationalmswin-dc01.attackrange.local12# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Amazon Software License (the "License").
# You may not use this file except in compliance with the License.
# A copy of the License is located at
#
# http://aws.amazon.com/asl/
#
# or in the "license" file accompanying this file. This file is distributed
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied. See the License for the specific language governing
# permissions and limitations under the License.
<#-----------------------------------------------------------------------------------------------------------
Initialize-Ec2Disk brings online, partitions and formats disk.
-------------------------------------------------------------------------------------------------------------#>
function Initialize-Ec2Disk
{
param(
[Parameter(Mandatory = $true,Position = 0)]
[int]$DiskIndex,
[Parameter(Mandatory = $true,Position = 1)]
[int]$EphemeralCount,
[Parameter(Mandatory = $true,Position = 2)]
[bool]$IsEphemeral = $false
)
Write-Log ("Initializing disk {0} begins" -f $DiskIndex)
$isLargeDisk = $false
try
{
# If the disk size exceeds 2199023255551 bytes (2 TB),
# the disk must use GPT partition table.
$disk = Get-Disk -Number $DiskIndex
if ($disk.Size -gt 2199023255551)
{
$isLargeDisk = $true
}
}
catch
{
Write-ErrorLog ("Failed to get disk size: {0}" -f $_.Exception.Message)
}
try
{
Write-Log ("Initializing the disk ...")
if (-not $isLargeDisk)
{
Initialize-Disk -Number $DiskIndex -PartitionStyle MBR | Out-Null
}
else
{
Initialize-Disk -Number $DiskIndex -PartitionStyle GPT | Out-Null
}
}
catch
{
Write-ErrorLog ("Failed to initialize disk: {0}" -f $_.Exception.Message)
}
$driveLetter = ""
try
{
Write-Log "Looking for drive letter ..."
# If the disk is ephmeral (instance storage), drive letter starts from Z.
# Otherwise, drive letter starts from D.
if ($IsEphemeral)
{
# One-liner to get next available drive letter from Z to A.
for ($i = 91; Get-PSDrive ($driveLetter = [char] -- $i) 2>$null) {}
}
else
{
# One-liner to get next available drive letter from A to Z.
for ($i = 67; Get-PSDrive ($driveLetter = [char]++ $i) 2>$null) {}
}
}
catch
{
Write-ErrorLog ("Failed to initialize disk: {0}. There is no available drive letter left to use" -f $DiskIndex)
return ""
}
try
{
# Stop Shell HW Detection service to prevent the prompt to pop up.
Stop-Service -Name ShellHWDetection -ErrorAction SilentlyContinue
Write-Log ("Creating partition with drive letter {0} ..." -f $driveLetter)
# Create a partition with the given drive index and letter.
if (-not $isLargeDisk)
{
$partition = New-Partition $DiskIndex -MbrType IFS -DriveLetter $driveLetter -UseMaximumSize -IsActive
}
else
{
$partition = New-Partition $DiskIndex -GptType '{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}' -DriveLetter $driveLetter -UseMaximumSize
}
# Check if volume is formatted for the disk.
# If volume is not in OK status, we need to format the volume with given parameters.
$formatted = Get-Volume -Partition $partition
if (-not $formatted -or $formatted.OperationalStatus -ne "OK")
{
Write-Log "Formatting the volume ..."
# Format the volume on the created/exsiting partition using the partition reference.
if ($IsEphemeral)
{
$formatted = Format-Volume -Partition $partition -FileSystem NTFS -NewFileSystemLabel "Temporary Storage $($EphemeralCount)" -Confirm:$false
}
else
{
$formatted = Format-Volume -Partition $partition -FileSystem NTFS -Confirm:$false
}
}
else
{
throw New-Object System.Exception ("Volume already has been formatted.")
}
# This updates the drive info
Get-PSDrive | Out-Null
Write-Log ("Disk {0} is successfully initialized, partitioned and formatted" -f $DiskIndex)
return $driveLetter
}
catch
{
Write-ErrorLog ("Failed to initialize disk {0}: {1}" -f $DiskIndex,$_.Exception.Message)
}
finally
{
# Start the service back.
Start-Service -Name ShellHWDetection -ErrorAction SilentlyContinue
}
return ""
}
# SIG # Begin signature block
# MIIuqwYJKoZIhvcNAQcCoIIunDCCLpgCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDwXD7Y17Dk9hNR
# Rwc70/aqPReSFpU/nooaeyD+7cgw/6CCFBkwggXAMIIEqKADAgECAhAP0bvKeWvX
# +N1MguEKmpYxMA0GCSqGSIb3DQEBCwUAMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV
# BAMTIkRpZ2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwHhcNMjIwMTEz
# MDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMM
# RGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQD
# ExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqGSIb3DQEBAQUAA4IC
# DwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEppz1Yq3aa
# za57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllV
# cq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT
# +CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd
# 463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+
# EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/CNdaSaTC5qmgZ92k
# J7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtmmnTK3kse5w5j
# rubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
# f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJU
# KSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+wh
# X8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQAB
# o4IBZjCCAWIwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5n
# P+e6mK4cD08wHwYDVR0jBBgwFoAUsT7DaQP4v0cB1JgmGggC72NkK8MwDgYDVR0P
# AQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMDMH8GCCsGAQUFBwEBBHMwcTAk
# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEkGCCsGAQUFBzAC
# hj1odHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRIaWdoQXNzdXJh
# bmNlRVZSb290Q0EuY3J0MEsGA1UdHwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwzLmRp
# Z2ljZXJ0LmNvbS9EaWdpQ2VydEhpZ2hBc3N1cmFuY2VFVlJvb3RDQS5jcmwwHAYD
# VR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQELBQADggEBAEHx
# qRH0DxNHecllao3A7pgEpMbjDPKisedfYk/ak1k2zfIe4R7sD+EbP5HU5A/C5pg0
# /xkPZigfT2IxpCrhKhO61z7H0ZL+q93fqpgzRh9Onr3g7QdG64AupP2uU7SkwaT1
# IY1rzAGt9Rnu15ClMlIr28xzDxj4+87eg3Gn77tRWwR2L62t0+od/P1Tk+WMieNg
# GbngLyOOLFxJy34riDkruQZhiPOuAnZ2dMFkkbiJUZflhX0901emWG4f7vtpYeJa
# 3Cgh6GO6Ps9W7Zrk9wXqyvPsEt84zdp7PiuTUy9cUQBY3pBIowrHC/Q7bVUx8ALM
# R3eWUaNetbxcyEMRoacwggawMIIEmKADAgECAhAIrUCyYNKcTJ9ezam9k67ZMA0G
# CSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0
# IFRydXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0zNjA0MjgyMzU5NTla
# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE
# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz
# ODQgMjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVtC9C
# 0CiteLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0JAfhS0/TeEP0F9ce
# 2vnS1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJrQ5qZ8sU7H/Lvy0da
# E6ZMswEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhFLqGfLOEYwhrMxe6T
# SXBCMo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+FLEikVoQ11vkunKoA
# FdE3/hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh3K3kGKDYwSNHR7Oh
# D26jq22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJwZPt4bRc4G/rJvmM
# 1bL5OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQayg9Rc9hUZTO1i4F4z
# 8ujo7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbIYViY9XwCFjyDKK05
# huzUtw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchApQfDVxW0mdmgRQRNY
# mtwmKwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRroOBl8ZhzNeDhFMJlP
# /2NPTLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IBWTCCAVUwEgYDVR0T
# AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHwYD
# VR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMG
# A1UdJQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYY
# aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2Fj
# ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNV
# HR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRU
# cnVzdGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAEDMAgGBmeBDAEEATAN
# BgkqhkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql+Eg08yy25nRm95Ry
# sQDKr2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFFUP2cvbaF4HZ+N3HL
# IvdaqpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1hmYFW9snjdufE5Btf
# Q/g+lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3RywYFzzDaju4ImhvTnh
# OE7abrs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5UbdldAhQfQDN8A+KVssIh
# dXNSy0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw8MzK7/0pNVwfiThV
# 9zeKiwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnPLqR0kq3bPKSchh/j
# wVYbKyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatEQOON8BUozu3xGFYH
# Ki8QxAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bnKD+sEq6lLyJsQfmC
# XBVmzGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQjiWQ1tygVQK+pKHJ6l
# /aCnHwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbqyK+p/pQd52MbOoZW
# eE4wggedMIIFhaADAgECAhACxyVvD/v+ctpMbqqoNdVVMA0GCSqGSIb3DQEBCwUA
# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE
# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz
# ODQgMjAyMSBDQTEwHhcNMjIxMTA1MDAwMDAwWhcNMjMxMTA4MjM1OTU5WjCB8jET
# MBEGCysGAQQBgjc8AgEDEwJVUzEZMBcGCysGAQQBgjc8AgECEwhEZWxhd2FyZTEd
# MBsGA1UEDwwUUHJpdmF0ZSBPcmdhbml6YXRpb24xEDAOBgNVBAUTBzQxNTI5NTQx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdTZWF0
# dGxlMSIwIAYDVQQKExlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQL
# EwpBbWF6b24gRUMyMSIwIAYDVQQDExlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMu
# MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0jWbhD4ghdeO4Nndy/2h
# vCCUPPKnL63myeBZYItXG1dnB5gpJIrBVu40V4OaiNwyUAiBrO5eGM4IaWLqbxvj
# 324KRuXtmHcXvF7YRgiciflrsfzoUEu4TdKj+owTNA2uektzbVLWzT0wFKe5n4Xe
# CAqQQe33ODVB+cBTUSv/TRWf3Edni17S8HldwSq+YvPIRv21Shp7fiCxO45ETxwl
# BsoeNrwLAQz0QpiaGdY5Fb+12jcoWRqYqAiXGeDLA7Wxq1+Xj2n+UwelzhYfcE5/
# p8w4FsFJi9tVb0aWS63OnP+aTOCrA5bz5j9wq8x25/hCGm6HktmbZRwjKiFQ+HdL
# g0t3250T9hxvXjudh/DGPCIcmQzKBuxijP8f60DutqLk/EsS+Z5xD/s9/rruXfAj
# czkZ/xpHLHKa+Fp7x+tIwuC5Zq6VAM6CFgJOWefYG5h8sjZFhrphbnYzs0C75SCx
# KOKFe6RyrQ+O+xh96ky4kw47zNXbbc7xBqVjLjbOgSTFAgMBAAGjggI1MIICMTAf
# BgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNVHQ4EFgQUOv3VJlso
# 3pHAv43pOWMQfdVdjXkwLgYDVR0RBCcwJaAjBggrBgEFBQcIA6AXMBUME1VTLURF
# TEFXQVJFLTQxNTI5NTQwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUF
# BwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv
# bS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5NlNIQTM4NDIwMjFD
# QTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRU
# cnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNybDA9BgNV
# HSAENjA0MDIGBWeBDAEDMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNl
# cnQuY29tL0NQUzCBlAYIKwYBBQUHAQEEgYcwgYQwJAYIKwYBBQUHMAGGGGh0dHA6
# Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBcBggrBgEFBQcwAoZQaHR0cDovL2NhY2VydHMu
# ZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2
# U0hBMzg0MjAyMUNBMS5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOC
# AgEARxdSHXYd6BO2G0SQESFEKuC2xGsuekZq4Q//Jg3mHKBkDSLrK1PEriBExb5n
# JNAmCoh374kLOj9fbV5kPmj2kTdH65b1GVIp4VADVOwla1NGrbqFIvSzUN68xqWw
# ITM15yR5OU4peuSD8pdxGLwIM3YEsorhVugVI/TZ3oSs89vMNKIUK4qrHvDpveUf
# 1tQKFYUwyKEkauDqovs2pS7G6+1mqSgXx4Nt1OdZwwdXS8d14xcsaz96C+4G7fAr
# lbcKiGnHwxlO0FaC+piuverA1NU3lw8UFlTdaQxldKhS47iKZaWTS+mwi2H5PC2G
# cgXNlQG5tuh/TimhfHpqrvtrXBpNQTU6ydv6E/Bj6DE5VkJGIKua0GvI7LkwFBFC
# WD1hrAEjtY2LkPAgMDQe9iqPoEGeNwZeEjJjLgayPLP7NsJRdA6uhXboMEFW2LNf
# VM/hdzl1RG/5kJ4La/mEkpvQRtZRbaSPuSHRxGz//P62qKFQGL0K/YI9RlowyGrQ
# ENfvztdmqPN8xLJ7C7IuWkx2ygO++4Vva/DaiXX2gMtt6hYYfngOt6+beRWLbpdr
# cbd57d2f6-fa2a-4b6c-9d27-12bec6320615C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Scripts\Initialize-Ec2Disk.ps1
4104152150x0744233Microsoft-Windows-PowerShell/Operationalmswin-server.attackrange.local12# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Amazon Software License (the "License").
# You may not use this file except in compliance with the License.
# A copy of the License is located at
#
# http://aws.amazon.com/asl/
#
# or in the "license" file accompanying this file. This file is distributed
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied. See the License for the specific language governing
# permissions and limitations under the License.
<#-----------------------------------------------------------------------------------------------------------
Initialize-Ec2Disk brings online, partitions and formats disk.
-------------------------------------------------------------------------------------------------------------#>
function Initialize-Ec2Disk
{
param(
[Parameter(Mandatory = $true,Position = 0)]
[int]$DiskIndex,
[Parameter(Mandatory = $true,Position = 1)]
[int]$EphemeralCount,
[Parameter(Mandatory = $true,Position = 2)]
[bool]$IsEphemeral = $false
)
Write-Log ("Initializing disk {0} begins" -f $DiskIndex)
$isLargeDisk = $false
try
{
# If the disk size exceeds 2199023255551 bytes (2 TB),
# the disk must use GPT partition table.
$disk = Get-Disk -Number $DiskIndex
if ($disk.Size -gt 2199023255551)
{
$isLargeDisk = $true
}
}
catch
{
Write-ErrorLog ("Failed to get disk size: {0}" -f $_.Exception.Message)
}
try
{
Write-Log ("Initializing the disk ...")
if (-not $isLargeDisk)
{
Initialize-Disk -Number $DiskIndex -PartitionStyle MBR | Out-Null
}
else
{
Initialize-Disk -Number $DiskIndex -PartitionStyle GPT | Out-Null
}
}
catch
{
Write-ErrorLog ("Failed to initialize disk: {0}" -f $_.Exception.Message)
}
$driveLetter = ""
try
{
Write-Log "Looking for drive letter ..."
# If the disk is ephmeral (instance storage), drive letter starts from Z.
# Otherwise, drive letter starts from D.
if ($IsEphemeral)
{
# One-liner to get next available drive letter from Z to A.
for ($i = 91; Get-PSDrive ($driveLetter = [char] -- $i) 2>$null) {}
}
else
{
# One-liner to get next available drive letter from A to Z.
for ($i = 67; Get-PSDrive ($driveLetter = [char]++ $i) 2>$null) {}
}
}
catch
{
Write-ErrorLog ("Failed to initialize disk: {0}. There is no available drive letter left to use" -f $DiskIndex)
return ""
}
try
{
# Stop Shell HW Detection service to prevent the prompt to pop up.
Stop-Service -Name ShellHWDetection -ErrorAction SilentlyContinue
Write-Log ("Creating partition with drive letter {0} ..." -f $driveLetter)
# Create a partition with the given drive index and letter.
if (-not $isLargeDisk)
{
$partition = New-Partition $DiskIndex -MbrType IFS -DriveLetter $driveLetter -UseMaximumSize -IsActive
}
else
{
$partition = New-Partition $DiskIndex -GptType '{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}' -DriveLetter $driveLetter -UseMaximumSize
}
# Check if volume is formatted for the disk.
# If volume is not in OK status, we need to format the volume with given parameters.
$formatted = Get-Volume -Partition $partition
if (-not $formatted -or $formatted.OperationalStatus -ne "OK")
{
Write-Log "Formatting the volume ..."
# Format the volume on the created/exsiting partition using the partition reference.
if ($IsEphemeral)
{
$formatted = Format-Volume -Partition $partition -FileSystem NTFS -NewFileSystemLabel "Temporary Storage $($EphemeralCount)" -Confirm:$false
}
else
{
$formatted = Format-Volume -Partition $partition -FileSystem NTFS -Confirm:$false
}
}
else
{
throw New-Object System.Exception ("Volume already has been formatted.")
}
# This updates the drive info
Get-PSDrive | Out-Null
Write-Log ("Disk {0} is successfully initialized, partitioned and formatted" -f $DiskIndex)
return $driveLetter
}
catch
{
Write-ErrorLog ("Failed to initialize disk {0}: {1}" -f $DiskIndex,$_.Exception.Message)
}
finally
{
# Start the service back.
Start-Service -Name ShellHWDetection -ErrorAction SilentlyContinue
}
return ""
}
# SIG # Begin signature block
# MIIuqwYJKoZIhvcNAQcCoIIunDCCLpgCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDwXD7Y17Dk9hNR
# Rwc70/aqPReSFpU/nooaeyD+7cgw/6CCFBkwggXAMIIEqKADAgECAhAP0bvKeWvX
# +N1MguEKmpYxMA0GCSqGSIb3DQEBCwUAMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV
# BAMTIkRpZ2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwHhcNMjIwMTEz
# MDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMM
# RGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQD
# ExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqGSIb3DQEBAQUAA4IC
# DwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEppz1Yq3aa
# za57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllV
# cq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT
# +CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd
# 463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+
# EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/CNdaSaTC5qmgZ92k
# J7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtmmnTK3kse5w5j
# rubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
# f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJU
# KSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+wh
# X8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQAB
# o4IBZjCCAWIwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5n
# P+e6mK4cD08wHwYDVR0jBBgwFoAUsT7DaQP4v0cB1JgmGggC72NkK8MwDgYDVR0P
# AQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMDMH8GCCsGAQUFBwEBBHMwcTAk
# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEkGCCsGAQUFBzAC
# hj1odHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRIaWdoQXNzdXJh
# bmNlRVZSb290Q0EuY3J0MEsGA1UdHwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwzLmRp
# Z2ljZXJ0LmNvbS9EaWdpQ2VydEhpZ2hBc3N1cmFuY2VFVlJvb3RDQS5jcmwwHAYD
# VR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQELBQADggEBAEHx
# qRH0DxNHecllao3A7pgEpMbjDPKisedfYk/ak1k2zfIe4R7sD+EbP5HU5A/C5pg0
# /xkPZigfT2IxpCrhKhO61z7H0ZL+q93fqpgzRh9Onr3g7QdG64AupP2uU7SkwaT1
# IY1rzAGt9Rnu15ClMlIr28xzDxj4+87eg3Gn77tRWwR2L62t0+od/P1Tk+WMieNg
# GbngLyOOLFxJy34riDkruQZhiPOuAnZ2dMFkkbiJUZflhX0901emWG4f7vtpYeJa
# 3Cgh6GO6Ps9W7Zrk9wXqyvPsEt84zdp7PiuTUy9cUQBY3pBIowrHC/Q7bVUx8ALM
# R3eWUaNetbxcyEMRoacwggawMIIEmKADAgECAhAIrUCyYNKcTJ9ezam9k67ZMA0G
# CSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0
# IFRydXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0zNjA0MjgyMzU5NTla
# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE
# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz
# ODQgMjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVtC9C
# 0CiteLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0JAfhS0/TeEP0F9ce
# 2vnS1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJrQ5qZ8sU7H/Lvy0da
# E6ZMswEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhFLqGfLOEYwhrMxe6T
# SXBCMo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+FLEikVoQ11vkunKoA
# FdE3/hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh3K3kGKDYwSNHR7Oh
# D26jq22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJwZPt4bRc4G/rJvmM
# 1bL5OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQayg9Rc9hUZTO1i4F4z
# 8ujo7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbIYViY9XwCFjyDKK05
# huzUtw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchApQfDVxW0mdmgRQRNY
# mtwmKwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRroOBl8ZhzNeDhFMJlP
# /2NPTLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IBWTCCAVUwEgYDVR0T
# AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHwYD
# VR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMG
# A1UdJQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYY
# aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2Fj
# ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNV
# HR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRU
# cnVzdGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAEDMAgGBmeBDAEEATAN
# BgkqhkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql+Eg08yy25nRm95Ry
# sQDKr2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFFUP2cvbaF4HZ+N3HL
# IvdaqpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1hmYFW9snjdufE5Btf
# Q/g+lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3RywYFzzDaju4ImhvTnh
# OE7abrs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5UbdldAhQfQDN8A+KVssIh
# dXNSy0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw8MzK7/0pNVwfiThV
# 9zeKiwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnPLqR0kq3bPKSchh/j
# wVYbKyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatEQOON8BUozu3xGFYH
# Ki8QxAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bnKD+sEq6lLyJsQfmC
# XBVmzGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQjiWQ1tygVQK+pKHJ6l
# /aCnHwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbqyK+p/pQd52MbOoZW
# eE4wggedMIIFhaADAgECAhACxyVvD/v+ctpMbqqoNdVVMA0GCSqGSIb3DQEBCwUA
# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE
# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz
# ODQgMjAyMSBDQTEwHhcNMjIxMTA1MDAwMDAwWhcNMjMxMTA4MjM1OTU5WjCB8jET
# MBEGCysGAQQBgjc8AgEDEwJVUzEZMBcGCysGAQQBgjc8AgECEwhEZWxhd2FyZTEd
# MBsGA1UEDwwUUHJpdmF0ZSBPcmdhbml6YXRpb24xEDAOBgNVBAUTBzQxNTI5NTQx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdTZWF0
# dGxlMSIwIAYDVQQKExlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQL
# EwpBbWF6b24gRUMyMSIwIAYDVQQDExlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMu
# MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0jWbhD4ghdeO4Nndy/2h
# vCCUPPKnL63myeBZYItXG1dnB5gpJIrBVu40V4OaiNwyUAiBrO5eGM4IaWLqbxvj
# 324KRuXtmHcXvF7YRgiciflrsfzoUEu4TdKj+owTNA2uektzbVLWzT0wFKe5n4Xe
# CAqQQe33ODVB+cBTUSv/TRWf3Edni17S8HldwSq+YvPIRv21Shp7fiCxO45ETxwl
# BsoeNrwLAQz0QpiaGdY5Fb+12jcoWRqYqAiXGeDLA7Wxq1+Xj2n+UwelzhYfcE5/
# p8w4FsFJi9tVb0aWS63OnP+aTOCrA5bz5j9wq8x25/hCGm6HktmbZRwjKiFQ+HdL
# g0t3250T9hxvXjudh/DGPCIcmQzKBuxijP8f60DutqLk/EsS+Z5xD/s9/rruXfAj
# czkZ/xpHLHKa+Fp7x+tIwuC5Zq6VAM6CFgJOWefYG5h8sjZFhrphbnYzs0C75SCx
# KOKFe6RyrQ+O+xh96ky4kw47zNXbbc7xBqVjLjbOgSTFAgMBAAGjggI1MIICMTAf
# BgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNVHQ4EFgQUOv3VJlso
# 3pHAv43pOWMQfdVdjXkwLgYDVR0RBCcwJaAjBggrBgEFBQcIA6AXMBUME1VTLURF
# TEFXQVJFLTQxNTI5NTQwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUF
# BwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv
# bS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5NlNIQTM4NDIwMjFD
# QTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRU
# cnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNybDA9BgNV
# HSAENjA0MDIGBWeBDAEDMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNl
# cnQuY29tL0NQUzCBlAYIKwYBBQUHAQEEgYcwgYQwJAYIKwYBBQUHMAGGGGh0dHA6
# Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBcBggrBgEFBQcwAoZQaHR0cDovL2NhY2VydHMu
# ZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2
# U0hBMzg0MjAyMUNBMS5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOC
# AgEARxdSHXYd6BO2G0SQESFEKuC2xGsuekZq4Q//Jg3mHKBkDSLrK1PEriBExb5n
# JNAmCoh374kLOj9fbV5kPmj2kTdH65b1GVIp4VADVOwla1NGrbqFIvSzUN68xqWw
# ITM15yR5OU4peuSD8pdxGLwIM3YEsorhVugVI/TZ3oSs89vMNKIUK4qrHvDpveUf
# 1tQKFYUwyKEkauDqovs2pS7G6+1mqSgXx4Nt1OdZwwdXS8d14xcsaz96C+4G7fAr
# lbcKiGnHwxlO0FaC+piuverA1NU3lw8UFlTdaQxldKhS47iKZaWTS+mwi2H5PC2G
# cgXNlQG5tuh/TimhfHpqrvtrXBpNQTU6ydv6E/Bj6DE5VkJGIKua0GvI7LkwFBFC
# WD1hrAEjtY2LkPAgMDQe9iqPoEGeNwZeEjJjLgayPLP7NsJRdA6uhXboMEFW2LNf
# VM/hdzl1RG/5kJ4La/mEkpvQRtZRbaSPuSHRxGz//P62qKFQGL0K/YI9RlowyGrQ
# ENfvztdmqPN8xLJ7C7IuWkx2ygO++4Vva/DaiXX2gMtt6hYYfngOt6+beRWLbpdr
# cNgUrUJAGg8saVOkrBdziuB0fS93jso0mBvz0DTFXE5vvE8yOYQWR0njIOKbZuB5
# A15FSIngJ+joE7MFjkxwkQwx5czjrG0GVfqSSK8WiL5yq2wxghnoMIIZ5AIBATB9
# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE
# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz
# ODQgMjAyMSBDQTECEALHJW8P+/5y2kxuqqg11VUwDQYJYIZIAWUDBAIBBQCgfDAQ
# BgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQg1ONCaIRE
# DO143PA/tKVrNSCDoroLA2/o/YzySrFiLmYwDQYJKoZIhvcNAQEBBQAEggGAULAi
# FaR5Z+RTw2tyvLBZpSXDYnvwJKJliNmh1y8JLqEIV60ACQeb8Udc7vLpYMWXVA16
# OzFKqWnOXGrkI8cPIkw2+41E8QPimiFfjOLBSCXVz27tOz6fHew0bETyTdDElKwD
# GH/E2v3SysP1IkAHP+pSg9OmqTXx/ae1Q3f4zAR6oalq/CCkSdStaREbn6ZA9kE0
# Pr8kGLP9WV4+LN43b/ue2tOf7g1P6d++xpDAVuThxodurqCTapJ3NaG9zYas3wBL
# esOOZXSOKaNGJgOtVUejtIrc+uu4suUrao3Y2cGdK0kvuhREmTR6/NBauUEnJnIY
# aeOGzD/LGP9YPAEW7aKRTx4t0N4NKvGcBqmRi9/xwyLU351XICalbPo+PoDEzU+K
# CjTMpS/iJss2qvjARZUhTJIVVHlAdfI6/yWzSeHcxkIHosVGPsRZZbvXatLvVvMo
# cEVZeprhneUP//wjCHQxt99eYzEh+/k+W5r3+qfamjpA2WGBEivdZHgv2SV+oYIX
# PjCCFzoGCisGAQQBgjcDAwExghcqMIIXJgYJKoZIhvcNAQcCoIIXFzCCFxMCAQMx
# DzANBglghkgBZQMEAgEFADB4BgsqhkiG9w0BCRABBKBpBGcwZQIBAQYJYIZIAYb9
# bAcBMDEwDQYJYIZIAWUDBAIBBQAEIEtac9fe0ba-e03d-4e9c-8a80-0a7c72d9b7d1C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Scripts\Initialize-Ec2Disk.ps1