- name: "Extend C: partition to fill unallocated space"
10 ansible.windows.win_shell: |
11 $ErrorActionPreference = "Stop"
12 +
13 + $cPart = Get-Partition -DriveLetter C
14 + $diskNumber = $cPart.DiskNumber
15 +
16 + # ВАЖНО: Windows может расширить раздел только в СМЕЖНОЕ unallocated-
17 + # пространство. На типовом Windows-диске после C: обычно идёт ещё один
18 + # раздел (Recovery/WinRE) — если его не убрать, новое место после роста
19 + # VMDK оказывается ПОСЛЕ него, а не сразу после C:, и Resize-Partition
20 + # молча не находит, куда расти (SizeMax остаётся равен текущему размеру).
21 + # Удаляем все разделы, идущие после C: на том же диске, перед расширением.
22 + # Компромисс: среда восстановления (WinRE) перестаёт быть доступна — для
23 + # тестовых disposable VM это приемлемо (аналогично уже принятому решению
24 + # не делать sysprep/generalize).
25 + $partsAfterC = Get-Partition -DiskNumber $diskNumber | Where-Object { $_.Offset -gt $cPart.Offset }
26 + foreach ($p in $partsAfterC) {
27 + Remove-Partition -DiskNumber $diskNumber -PartitionNumber $p.PartitionNumber -Confirm:$false
28 + }
29 +
30 $max = (Get-PartitionSupportedSize -DriveLetter C).SizeMax
31 $current = (Get-Partition -DriveLetter C).Size
32 if ($max -gt $current) {