From raw disks to user-facing shares — partition, pool, share, secure.
Best Practice: Use Basic Disks with GPT for most scenarios. For advanced storage features like redundancy and pooling, use Storage Spaces instead of Dynamic Disks.
| Feature | MBR (Master Boot Record) | GPT (GUID Partition Table) |
|---|---|---|
| Max Disk Size | 2 TB | 18 EB (exabytes) |
| Max Partitions | 4 primary (or 3 + extended) | 128 |
| Boot Mode | BIOS (Legacy) | UEFI |
| Redundancy | Single partition table | Backup table at disk end |
The Disk Management MMC snap-in (diskmgmt.msc) is the primary GUI for managing storage.
PowerShell's Storage module manages disks end-to-end. Output table shown in the right-panel demo.
Initialize a new (RAW) disk before it can hold partitions.
Get-Disk by default shows the columns Microsoft picked. To see EVERY property of a disk — bus type, firmware, serial, partition style, alignment — pipe it to Format-List with the wildcard.
Pipe a disk to Format-List to see every property, including bus type and firmware version.
Carve a partition from the disk, then format the resulting volume. Right panel shows the resulting table.
Once partitions exist and are formatted, Get-Volume gives you the system-wide view: drive letters, file systems, free space — one cmdlet, all of it. Right panel shows the output table.
Chain the entire disk setup into a single pipeline — initialize, partition, and format in one shot. Each step produces an object the next consumes.
Disk Management is great for one-off tasks. PowerShell shines when you need to:
Storage Spaces pools physical disks into virtual storage with built-in resilience. Three layers stack on top of each other — right panel shows the relationship:
| Type | Description | Min Disks | Efficiency |
|---|---|---|---|
| Simple | Striping only (no redundancy) | 1 | 100% |
| Mirror | 2 or 3 copies of data | 2 | 50% |
| Parity | RAID 5/6 equivalent | 3 | 67-88% |
Two-step process: first pool the physical disks (this slide), then carve resilient virtual disks from that pool (next slide). The resiliency choice happens at virtual-disk creation, not at the pool.
Once the pool exists, virtual disks come out of it. ResiliencySettingName is where the Simple / Mirror / Parity choice gets applied. Size can be smaller than the pool — one pool, many virtual disks.
Server Message Block (SMB) is the Windows file sharing protocol. SMB 3.x is the current standard.
| Share Name | Example | Description |
|---|---|---|
| Standard | \\Server\Data | Visible in network browse |
| Hidden ($) | \\Server\Data$ | Must know exact name to access |
| Administrative | \\Server\C$, \\Server\ADMIN$ | Built-in admin shares |
Get-SmbShare enumerates every share, including hidden administrative shares. Output table shown in the right-panel demo.
For who is connected and which files are open right now — two more cmdlets. Essential for debugging a stuck lock or quota issue.
Windows uses two permission layers. Understanding how they interact is critical.
Golden Rule — most restrictive wins. Share=Full + NTFS=Read → user gets Read. Best practice: share Everyone:Full, control via NTFS.
Inspect the NTFS ACL on a folder and grant Change-level access on a share to a group. Right panel walks the ACL workflow end-to-end.
Grant-SmbShareAccess is the easy path for share permissions. For NTFS, you build an access-rule object yourself, add it to the ACL, and write it back. More steps, more control.
Build an NTFS access rule object and apply it to a folder to grant Modify rights.
| Task | Cmdlet |
|---|---|
| List disks / volumes | Get-Disk / Get-Volume |
| Init + partition + format | Initialize-Disk | New-Partition | Format-Volume |
| Create share | New-SmbShare -Name X -Path Y |