-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinitialize-data-disk.ps1
More file actions
57 lines (51 loc) · 1.95 KB
/
Copy pathinitialize-data-disk.ps1
File metadata and controls
57 lines (51 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# initialize-data-disk.ps1
# Run as Administrator on the Azure Windows Server VM to format and mount the SSD as D: and create directories.
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
# Reassign CD-ROM from D: to Z: if necessary
Get-WmiObject -Class Win32_Volume | Where-Object { $_.DriveLetter -eq 'D:' } | ForEach-Object {
Write-Host "CD-ROM is using drive letter D:. Reassigning to Z:..."
$_.DriveLetter = 'Z:'
$_.Put()
}
# Find raw disks
$rawDisk = Get-Disk | Where-Object PartitionStyle -eq 'Raw'
if (-not $rawDisk) {
Write-Host "No raw disk found. Checking if D: is already active..."
$drive = Get-Volume -DriveLetter D -ErrorAction SilentlyContinue
if ($drive) {
Write-Host "D: drive is already active. FileSystemLabel: $($drive.FileSystemLabel)"
} else {
Write-Error "D: drive is not active, and no raw disk was found to partition."
exit 1
}
} else {
Write-Host "Found raw disk: Number $($rawDisk.Number), Size $($rawDisk.Size / 1GB) GB. Initializing..."
$rawDisk | Initialize-Disk -PartitionStyle GPT -PassThru | New-Partition -DriveLetter D -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Data" -Confirm:$false
Write-Host "D: drive initialized successfully!"
}
# Create target layout directories
$Dirs = @(
"D:\JoySword",
"D:\JoySword\Client",
"D:\JoySword\Server",
"D:\JoySword\Database",
"D:\JoySword\DatabaseBackups",
"D:\JoySword\Config",
"D:\JoySword\Tools",
"D:\JoySword\Logs",
"D:\JoySword\PacketReplays",
"D:\JoySword\Evidence",
"D:\JoySword\Installers",
"D:\JoySword\Snapshots",
"D:\JoySword\RuntimeNotes"
)
foreach ($Dir in $Dirs) {
if (-not (Test-Path $Dir)) {
New-Item -ItemType Directory -Path $Dir -Force | Out-Null
Write-Host "Created directory: $Dir"
} else {
Write-Host "Directory already exists: $Dir"
}
}
Write-Host "Target layout directories created successfully."