
Get-Partition показывает разделы со стороны диска, включая служебные. Get-Volume показывает логические тома так, как их видит Windows, с размером свободного места. Раздел без буквы и файловой системы через том не виден.Get-PartitionSupportedSize показывает минимальный и максимальный размер раздела. Значения даются в байтах, поэтому для читаемости их переводят в мегабайты и гигабайты.Resize-Partition с буквой диска C уменьшает раздел. В примере диск C уменьшили с 59 до 55 ГБ. Размер лучше брать из Get-PartitionSupportedSize, а не писать вручную, тогда скрипт подойдет любому компьютеру.New-Partition создает раздел на всем свободном месте с буквой D. Такой раздел без файловой системы в проводнике показывает нулевой размер, поэтому его форматируют в NTFS.|, а также сохранить в переменную и взять ее свойство..ps1 в Windows PowerShell ISE. Там же можно запускать отдельные выделенные строки. Строки-комментарии не выполняются, поэтому удобно хранить там команды для удаления.Remove-Partition удаляет раздел. Параметр Confirm со значением false отключает подтверждение.PowerShell.exe -File с путем к скрипту. Так его можно запускать и вручную, и из планировщика задач.Set-ExecutionPolicy. Такая политика разрешает локальные скрипты, а удаленные должны быть подписаны.Полный текст первых минут лекции «Powershell - управление дисками и разделами в Windows 10» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.
Добро пожаловать на лекцию. На этой лекции мы с помощью PowerShell создадим партиции, сожмем партиции, сделаем все это автоматически с помощью скрипта, с помощью событий.
И мы поучим и команды, и выучим, как работать с PowerShell. И все автоматизировать из командной строки, и с помощью среды разработки специальной, которая создана для PowerShell.
Так, давайте начнем с того, что мы ознакомимся с нашими командами, которые у нас есть и с нашей задачей. Наша задача простая, сжать дисковод C на 5 гигабайт и на них создать на свободном месте, создать дисковод D, диск D.
И я запускаю PowerShell с правами администратора, и у меня команда getDisk показывает, что у меня в системе только один диск, диск номер 0 на 60 гигов.
И вот этот вот диск мы видим слева. И мы с помощью команд PowerShell хотим сделать shrink, сжать этот раздел C, чтобы на нем освободилось 5 гигабайт, чтобы на диске 0 освободилось 5 мегабайт.
Давайте сделаем сначала Get Partition и посмотрим список наших разделов на диске 0. И мы видим, что у нас 4 раздела и их Offset.
Offset – это отступ от начала диска, где эта партица, где этот раздел начинается и какую букву ему присвоила операционная система, чтобы к нему можно было подойти. Там, где нет букв, то к ним нельзя обращаться программно.
Что значит обращаться? Это значит видеть их как Volume. Volume – это логическая структура с точки зрения пользователя. И заметьте, например, Volume позволяет мне видеть CD-ROM и логические структуры, а Get Partition, взять разделы, разделы это более физический мир.
То есть я могу смотреть на разделы с точки зрения логики, с точки зрения пользователей, с абстрактной точки зрения, это называется Volume. А с точки зрения физического мира, это называется смотреть на разделы.
Я вам пытаюсь объяснить, чем раздел, партиция отличается от Volume, Tom. Volume это Tom, Partition это раздел. Так, Partition, раздел это физическое деление жесткого диска.
На нем есть разделы, которые даже логически мы не умеем читать, потому что у нас нет инструментов, чтобы прочесть, что есть в каком-то разделе.
Например, раздел Resolve Microsoft, MSR, Microsoft Resolve. В этом разделе Microsoft сохраняет свою внутреннюю информацию по динамическим дискам, по программным рейдам, и мы как пользователи не можем понять, что там есть, поэтому команда Get Volume вообще нам его не показывает.
А Get Volume может, например, показать разделы, которые не связаны даже с диском, например, CD-ROM. Но, конечно, есть связь между физическими и логическими разделами, между томами и разделами, между Volume и партицией.
И мы можем эту связь установить по размеру диска. Заметьте, 59 ГБ это вот 59 ГБ дисковода C. 529 это вот 529 Recovery. То есть да, конечно, есть связь между логическими томами, volume и физическими разделами, но это не одно и то же.
Могут быть разделы, которые volume не умеет понимать, пользователь не умеет понимать, а могут быть volume, которые не находятся на физическом диске, например, CD-ROM, он находится на другом устройстве.
Volume это более логически абстрактно, партиции это более физические разделы самого диска, Поэтому в GetPartition у нас есть, например, offset, отступ от начала диска, а в GetVolume у нас есть, например, свободного места, сколько есть.
В партициях нет понятия свободного места, потому что диск не интересует, что у тебя происходит внутри твоего раздела. GetPartition показывает физическое деление, а не что происходит внутри каждой партиции, внутри каждого раздела.
А GetVolume да, показывает. Это такое вступление, потому что многие думают, что партиции, разделы и volume это одно и то же. Volume это том, принято переводить его как тома, том, я его буду назвать volume.
Так, что мы хотим сделать? Мы хотим сделать getPartitionSupportSize, то есть посмотреть какой максимальный размер дисковода C, диска C. И какой у него минимальный размер и максимальный размер.
Для чего нам это надо? Чтобы понять, сколько мы можем сжать. Мы же хотим сжать 5 гигабайт, освободить 5 гигабайт на диске, чтобы там создать диск D.
И мы делаем Get Partition Support Size, видим минимальный размер и также видим максимальный размер. Давайте я вам покажу, где это видно все графически.
Вот эти вот 63 гигабайта. Кстати, почему это 63 гигабайта? Потому что первые три цифры мы из байтов переходим в килобайты. Следующие три из килобайтов в мегабайты.
И следующие три мы из мегабайт в гигабайты переходим. То есть нам информация показана в байтах. И 63 миллиарда байтов это 63 гигабайта. Понятно? То есть если я хочу понять, что это за цифра, это цифра в байтах.
Это максимальный размер. Вот если я сделаю на графическом интерфейсе right-click-шринг, то мы увидим эти же цифры, ну похожие здесь округляются цифры, Потому что надо делить не на 1000, а на 1024.
Видите, здесь цифры в мегабайтах, а мегабайт это 1024 байта. Поэтому надо эту цифру разделить на 1024. И заметьте, у меня есть максимальный размер, сколько я максимум могу сжать.
Ведь я могу меньше сжимать, эти цифры спускаются, сколько сжать. А могу максимум сжать до какого-то количества.
То есть я не могу ее сделать нулевой, потому что там есть информация. И после сжатия, видите, она будет 25 мегабайт, 25 тысяч мегабайт, 25 гига.
Это вот это вот сайз минимали, минимум сайз, минимальный размер. Короче, вы поняли, да, что такое GetSupportedSize.
Это размер максимальный, минимальный, минимальный, потому что на нем есть уже информация, информация в байтах. Хотите в мегабайт и делите на 1024. Так, мы делаем Resize Partition и уменьшаем диск C.
Надо ему только сказать, что это будет диск C. Я нажимаю все время Tab, Tab, Tab, чтобы перейти между параметрами. И нахожу Drive Letter, чтобы указать не с помощью номера диска, а с помощью буквы C.
Мне так удобно. Я мог бы сказать там Partition номер 4. Но мне это неудобно, поэтому я делаю с помощью буквы. И теперь надо указать размер.
Какого размера будет партиция вместо 59 гигабайт, как она сейчас, она будет 55 гигабайт. Вот мы видим, она стала 55 гигабайт и у нас освободилось 4.37.
И теперь на этих Unlocated, на свободных 4.5 гигабайта, мы хотим создать новую партицию. Давайте сейчас с помощью команд PowerShell посмотрим, что действительно все так.
GetDisk, там ничего не изменилось. GetPartitions, посмотреть на разделы. Мы видим, что дисковод C, диск C стал 55, а был 59. Видите, старый предыдущий GetPartition показывает мне размер 59 гигабайт, а новый 55 гигабайт.
То есть все сработало, команда ResizePartition сработала. И я сразу хочу эту команду сохранить в текстовой файл, из которого мы делаем скрипт.
Мы же создаем потом скрипт, мы же хотим все автоматизировать. Именно для этого мы пишем все команды, чтобы можно было их запускать автоматом и без ошибок.
Наша цель писать команды вручную, это автоматизация. И нам в Microsoft Windows 10 добавили среду разработки для скриптов, для сценарий PowerShell.
И нам это облегчит работу, чтобы не писать все в Notepad, в блокноте. У нас есть такой умный блокнот специально для сценарий PowerShell. В конце концов это будет текстовой файл, но вот эта вот среда разработки, очень удобная, называется ASE и она встроена в Windows 10.
Windows PowerShell ASE. Я его специально открываю и у меня откроется такой умный, красивый блокнот, который мне помогает писать команды, запускать команды, а не просто текстовой редактор.
Вот наверху это простой текстовой редактор, и я сейчас сохраняю файл на рабочий стол, назвал его pscriptv2, и вот я его сохранил, верхняя часть это обычный текстовой редактор.
А справа, например, у меня есть список всех команд возможных для PowerShell, наверху есть запуск, я могу запустить только selection, только то, что выбрано, или зеленым треугольничком запустить весь скрипт.
То есть у меня есть такая умная среда разработки со списком всех команд справа и это очень удобно, в ней есть подсказки и мы к ней вернёмся немножко позже. Пока что я только сохранил в текстовой файл ту команду, которую мы использовали и проверили, что она хорошо работает и правильно.
Так, теперь мы что хотели? Мы хотели на 4,5 гигабайт создать новую партицию D. Я ему указываю New Partition и должен указать на каком диске, диск 0 и какой размер.
Размер мне нужен максимальный, поэтому я пишу Use Maximum Size. Я, сказать по правде, ничего не пишу, я нажимаю только Tab. Минус и Tab нажимаю. Видите, я нажимаю Tab и смотрю, какие варианты, какие параметры, какие аргументы я могу передать под эту команду. Есть здесь разные аргументы, параметры
и я даю букву drive letter D. Говорю, чтобы он сделал новую партицу на диске 0 максимальным размером под буквой D. Кстати, я мог сделать assign drive letter, чтобы вы не запутались.
Вот эта вот команда assign drive letter очень похожа. Она даст любую букву, первую попавшуюся, а я хочу именно букву D. Здесь еще есть разные аргументы, которые можно передать, например, чтобы партиция была hidden или активная. Активная это в старых MBR надо было обозначить активной партицию, с которой начинался boot.
Мне хватит этого. Я сделал новую партицию диск 0 максимального размера под буквой D. И вот она у меня появилась. Потрясающе. Единственное, что у нее нет файловой системы.
Есть раздел, но в нем нет никакого менеджера. Поэтому в свойствах этого диска у меня 0. В свойствах этого раздела, в свойствах этого Диска D у меня ноль, потому что никто не управляет этим разделом и непонятно, что там происходит внутри.
И поэтому проводник Windows'а дает мне все по нулям. Что мне надо сделать? Мне надо отформатировать диск.
Отформатировать диск и сделать там либо FAT, либо NTFS. FAT32 или NTFS. Или FAT64, который называется Extensible FAT, EXFAT.
Короче, мне надо внутри раздела сделать систему управления файлами, этот раздел пустой, и вот мне Windows предлагает его отформатировать, то есть выделен раздел, построена комната, обойти в дверь невозможно.
И мы даже видим, что файловая система называется RAW, то есть RAW, что ничего там нет. Вот мы видим DiskD с файловой системой RAW Basic Data Partition, то есть обычная партиция для информации, то есть у него айдишка, которая говорит, что это простая информация, а ничего в ней нет. Так, что мы хотим сделать? Мы хотим сейчас
посмотреть, как это видно через GetPartition. И мы видим, что раздел D существует, вот его буква, вот его отступ от начала диска и вот его размер. То есть, с точки зрения физических разделов он существует, но с точки зрения логических волюмов, видите, он пишет, что диск D, да, существует,
но в нем неизвестная файловая система и размер 0. Я вам показываю, как все можно делать с помощью командной строки PowerShell. Кстати, можно удаленно подключиться к какому-то компьютеру и удаленно делать эти команды на нем. Но мы сейчас не будем про удаленное подключение PowerShell
разговаривать. Давайте поймем, что с точки зрения разделов физических все нормально, а с точки зрения логических ненормально, потому что нет файловой системы для управления этим разделом внутри. Это как построить комнату и не сделать в нее дверь. Поэтому мы отформатируем и назначим
какую-то файловую систему управлять файлами внутри этого раздела. Так, мы будем форматировать диск D, и файловая система, я нажимаю Tab, заметьте, нажимаю Tab, F64, F12, еще раз Tab, сейчас нажмем, будет у нас F32, еще раз Tab нажмем, у нас NTFS. NTFS - самая лучшая файловая
система для непереносных дисков, не USB-шек, для USB-шек она не подходит, и мы форматируем. Вот мы отформатировали.
Потрясающе. И у нас появился дисковод D и в нем NTFS и мы можем зайти в него и создавать в нем теперь файлы. У нас есть менеджер этих файлов и все у нас работает.
Прекрасно. Так, надо не забыть эти команды скопировать в скрипт. Мы же пытаемся все автоматизировать, да. Мы проверили, что наши команды работают.
Теперь мы их копируем в этот наш текстовой файл. И какая у нас еще была команда, мы создали партицию, а потом ее отформатировали. В принципе, мы сделали всего лишь три действия. Мы сжали дисковод C, сжали диск C, создали новую партицию, новый раздел, а потом отформатировали его NTFS, этот новый
раздел, и дали ему букву D. Это все, что я хотел автоматизировать, в принципе. Так, давайте сейчас проверим наш скрипт, но чтобы нам проверить наш скрипт, нам надо Это сначала удалить то, что мы сделали, чтобы он мог создать еще раз диск D.
Так, мы можем удалить с помощью графического интерфейса, но мы хотим удалить диск D, видите, который уже Volume с ним умеет работать, дома работают как надо.
И мы можем это, кстати, увидеть и в