С Новым годом! Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
5 / 5 / 0
Регистрация: 21.01.2016
Сообщений: 17

Создать файл и записать в него информацию о заданном диске: метку диска, серийный номер и общий размер

21.01.2016, 07:08. Показов 2898. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите пожалуйста, имею такое задание: Создать файл и записать в него информацию о заданном пользователем диске: метку диска, серийный номер и общий размер (Кб, Мб или Гб). На такое задание на WSH ушло 3 дня в месте с чтением книг и информации в интернете. С PS больше вопросов чем ответов иформация в инете однообразна и мало информативна. Не могли Вы бы если возможно подсказать в каком направлении двигаться или хотя бы примерный текст сценария. Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2016, 07:08
Ответы с готовыми решениями:

Информация о заданном пользователем диске: метка диска, серийный номер и общий размер
Создать файл и записать в него информацию о заданном пользователем диске: метку диска, серийный номер и общий размер (Кб, Мб или Гб).

Задание по Visual c++ 2013, Нужно создать файл, записать в него информацию, а затем по другой кнопке считать информацию из файла
Вот код записи в файл: { UpdateData(TRUE); F.open(L"dat1.txt", std::ios::out); // F - файловая переменная p.god = p_god; //...

Создать файл и записать в него информацию о компьютере
Составить программу, которая создает файл и записывает в него информацию о компьютере, а именно: название процессора, объем оперативной...

4
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
21.01.2016, 12:40
Ромуальд,
По поводу хардов, можете посмотреть в сторону WMI
Так например можно получить инфу по диску D: и С:
PowerShell
1
2
get-wmiobject win32_volume|where{$_.driveletter -eq "D:"}
get-wmiobject win32_volume|where{$_.driveletter -eq "C:"}
По идее можете вытаскивать нужные Вам свойства, и оформить как функцию, с параметром "DiskName"
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
23.01.2016, 23:14
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Ромуальд, о каком диске идёт речь - физическом (HDD) или логическом?

Физические диски (HDD) - это производитель, модель, серийный номер, размер, версия прошивки, сектора, цилиндры и т.д.

На физическом диске создаются разделы (partition), они же тома. Причём на одном физическом диске может быть несколько разделов. Раздел - это файловая система, размер кластера, буква логического диска (может и не быть), размер раздела, метка, загрузочная область и т.д.

+ ещё есть динамические диски, например один логический на нескольких физических, но их оставим в стороне :-)

Вот скрипт, который перебирает все физические диски (подключенные не по USB) и выводит информацию как о физическом диске, так и о всех разделах на нём:

PowerShell
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
foreach ($disk in (Get-Disk | ? Bustype -ne "USB" | sort number))
{
 
$N = $disk.Number
 
#Write-Host "HDD" $N 
Write-Host "HDD $N модель:" $disk.Model
Write-Host "HDD $N SN:" $disk.SerialNumber
Write-Host "HDD $N общий размер, (GB):" ($disk.Size/1GB)
Write-Host "HDD $N количество разделов:" $disk.NumberOfPartitions
 
$partitions = $disk | Get-Partition | ? DriveLetter
 
Write-Host "HDD $N количество логических дисков, которым присвоены буквы:" ($partitions | Measure-Object).Count
 
foreach ($partition in $partitions)
    {
    $LogicalDisk = Get-CimInstance -ClassName Win32_LogicalDisk | ? DeviceID -eq ($partition.DriveLetter + ':')
    
    $L = $LogicalDisk.Caption
    
    Write-Host "Логический диск $L метка:" $LogicalDisk.VolumeName
    Write-Host "Логический диск $L размер, (GB)::" ($LogicalDisk.Size/1GB)
    Write-Host "Логический диск $L свободно, (GB):" ($LogicalDisk.FreeSpace/1GB)
    }
 
}
Например, на ноутбуке получаю вот это:

HDD 0 модель: TOSHIBA MK5061GSY
HDD 0 SN: *********
HDD 0 общий размер, (GB): 465,761741638184
HDD 0 количество разделов: 4
HDD 0 количество логических дисков, которым присвоены буквы: 2
Логический диск C: метка: SYSTEM
Логический диск C: размер, (GB):: 450,149856567383
Логический диск C: свободно, (GB): 232,696914672852
Логический диск D: метка: Lenovo_Recovery
Логический диск D: размер, (GB):: 13,6718711853027
Логический диск D: свободно, (GB): 2,05878829956055

А на сервере, вот это:

HDD 0 модель: Virtual disk
HDD 0 SN: 6000c294387ab6ecafa82424afbf73c6
HDD 0 общий размер, (GB): 500
HDD 0 количество разделов: 3
HDD 0 количество логических дисков, которым присвоены буквы: 2
Логический диск C: метка: SYSTEM
Логический диск C: размер, (GB):: 81,7871055603027
Логический диск C: свободно, (GB): 44,3687705993652
Логический диск M: метка: SQL Data
Логический диск M: размер, (GB):: 417,868103027344
Логический диск M: свободно, (GB): 330,270568847656
HDD 1 модель: Virtual disk
HDD 1 SN: 6000c2902ce588e1beca3dfad371f905
HDD 1 общий размер, (GB): 256
HDD 1 количество разделов: 1
HDD 1 количество логических дисков, которым присвоены буквы: 1
Логический диск L: метка: SQL Logs
Логический диск L: размер, (GB):: 255,997062683105
Логический диск L: свободно, (GB): 220,223831176758
HDD 2 модель: Virtual disk
HDD 2 SN: 6000c294a6914f0a32ddeb3810299d33
HDD 2 общий размер, (GB): 250
HDD 2 количество разделов: 2
HDD 2 количество логических дисков, которым присвоены буквы: 1
Логический диск S: метка: SQL Backup
Логический диск S: размер, (GB):: 249,872985839844
Логический диск S: свободно, (GB): 124,88720703125
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
24.01.2016, 15:26
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Командлеты Get-Disk и Get-Partition отсутствуют на клиентских версиях windows (точнее на на 8.1 вроде есть, на win 7 - нет, даже в 5-ой версии PoSh), поэтому для получения информации о физических дисках можно обратиться к тому же WMI:
PowerShell
1
2
3
4
5
6
gwmi Win32_DiskDrive -Filter "MediaType='Fixed hard disk media'"|ft `
      @{n="Имя диска";       e={$_.Name}},
      @{n="Модель";          e={$_.Model}},
      @{n="Число разделов";  e={$_.Partitions}},
      @{n="Размер(GB)";      e={($_.Size/1GB).ToString("F2")};a="right"},
      @{n="Серийный номер";  e={$_.SerialNumber};a="right"}
Что касается логических разделов, то нужные данные можно получить и через NET методы:
PowerShell
1
2
3
4
5
[System.IO.DriveInfo]::getdrives()|? drivetype -eq "fixed"|ft `
      @{n="Буква диска";   e={$_.Name}},
      @{n="Метка тома";    e={$_.VolumeLabel}},
      @{n="Размер(Gb)";    e={($_.TotalSize/1GB).ToString("F2")};a="right"},
      @{n="Свободно(Gb)";  e={($_.AvailableFreeSpace/1GB).ToString("F2")};a="right"}
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
24.01.2016, 20:59
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Garry Galler, Get-Disk есть начиная с Windows 8...

Если использовать Get-WmiObject, то эти же данные можно получить используя классы:
Win32_DiskDrive
Win32_DiskPartition
Win32_LogicalDisk

PowerShell
1
2
3
Get-WmiObject -Class Win32_DiskDrive | fl Model,SerialNumber,Size
Get-WmiObject -Class Win32_DiskPartition | fl DeviceID
Get-WmiObject -Class Win32_LogicalDisk | fl Caption,VolumeName,Size,FreeSpace,Description
Вот здесь показано, как через Get-WmiObject получить информацию о всех дисках в системе и разделах на них.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.01.2016, 20:59
Помогаю со студенческими работами здесь

Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию 1) Скопировать в файл F2 только четные строки из F1. ...

Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию. Скопировать в файл F2 только те строки из F1, которые...

Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию 1)скопировать в файл F2 только те строки из F1,...

Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
Всем привет, задание такое: Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию. Скопировать из файла F1 в...

создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы.
Не могу понять почему не работает вот этот кусок текста. ofstream q ("1.part"); for (int i=0; i<10; ++i) { q...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru