Problem ... mam dostęp tylko do wmic ... Cholera, którą znam ... ale muszę się dowiedzieć, który wolumin odpowiada odpowiadającej partycji odpowiadającej dyskowi. Wiem, jaka partycja odpowiada danemu dyskowi, ponieważ identyfikator dysku znajduje się bezpośrednio w wynikach zapytania wmic . Jednak pierwsza część problemu jest trudniejsza. Jak skorelować, który tom należy do jakich partycji? ..
Czy istnieje sposób, za pomocą wmic, do inżynierii wstecznej, które mapy woluminów do których partycji?
Jeśli tak, to jak wyglądałoby to zapytanie?
Odpowiedzi:
1 dla odpowiedzi № 1Najłatwiej to zrobić za pomocą diskpart
z wiersza poleceń:
C:>diskpart
Microsoft DiskPart version 10.0.10586
Copyright (C) 1999-2013 Microsoft Corporation.
On computer: TIMSPC
DISKPART> select disk 0
Disk 0 is now the selected disk.
DISKPART> detail disk
HGST HTS725050A7E630 *(Note: This is the Model of my hard disk)*
Disk ID: 00C942C7
Type : SATA
Status : Online
Path : 0
Target : 0
LUN ID : 0
Location Path : PCIROOT(0)#PCI(1F02)#ATA(C00T00L00)
Current Read-only State : No
Read-only : No
Boot Disk : Yes
Pagefile Disk : Yes
Hibernation File Disk : No
Crashdump Disk : Yes
Clustered Disk : No
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 System NTFS Partition 350 MB Healthy System
Volume 1 C OSDisk NTFS Partition 464 GB Healthy Boot
Volume 2 NTFS Partition 843 MB Healthy Hidden
DISKPART> exit
Leaving DiskPart...
C:>
Masz dostęp do wiersza poleceń, ponieważ masz dostęp do WMIC, więc tę metodę powinien praca.
Na podstawie komentarzy poniżej: Nie, nie ma sposobu, aby użyć WMIC do określenia z 100% dokładnością, która partycja odpowiada której partycji na konkretnym dysku. Problem z określeniem tych informacji za pośrednictwem usługi WMI polega na tym, że nie wszystkie dyski są dyskami podstawowymi. Niektóre dyski mogą być dyski dynamiczne zawierający wolumin RAID obejmujący wieledyski. Niektóre mogą być kompletną implementacją sprzętową, podobnie jak macierz pamięci (na przykład kontroler RAID p410i w HP ProLiant). Ponadto istnieje wiele schematów partycjonowania (np UEFI / GPT vs BIOS / MBR). WMI jest jednak niezależny od środowiska. Oznacza to, że nie dba o sprzęt, jest to po prostu inna forma abstrakcji, która zapewnia wspólny model interfejsu ujednolica i rozszerza istniejące standardy oprzyrządowania i zarządzania.
Aby uzyskać pożądany poziom szczegółowościwymagać narzędzia, które może łączyć się ze sobą na znacznie niższym poziomie, takim jak sterownik urządzenia i mam nadzieję, że sterownik dostarcza potrzebnych informacji. Jeśli tak nie jest, będziesz szukał programowania na bardzo niskim poziomie, aby połączyć się z samym urządzeniem ... zasadniczo tworząc nowy sterownik, który dostarcza potrzebnych informacji, ale w oparciu o twoje ograniczenia dostępu do linii poleceń, Diskpart jest najbliżej skonstruowane narzędzie, które znajdziesz.
- Istnieją tomy, które nie mają tradycyjnych listów.
I? Diskpart może wybrać dysk, partycje i woluminy na podstawie przypisanego numeru. Litera dysku nie ma znaczenia.
- W żadnym punkcie na dysku nie jest wymieniony żaden rodzaj identyfikatora, który pozwala użytkownikowi w 100% wiedzieć, z którą partycją ma do czynienia, gdy odwołuje się do woluminu.
Oto przykład jednego z moich serwerów z dwoma twardymi dyskami 500GB. Pierwszy na dysku Boot / OS. Drugi ma 2gb nieprzydzielonego miejsca.
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- ------
Volume 0 System NTFS Partition 350 MB Healthy System
Volume 1 C OSDisk NTFS Partition 465 GB Healthy Boot
Volume 2 D New Volume NTFS Partition 463 GB Healthy
DISKPART> select volume 2
Volume 2 is the selected volume.
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 465 GB 0 B
* Disk 1 Online 465 GB 2049 MB
DISKPART> list partition
Partition ### Type Size Offset
------------- ---------------- ------- -------
* Partition 1 Primary 463 GB 1024 KB
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- ------
Volume 0 System NTFS Partition 350 MB Healthy System
Volume 1 C OSDisk NTFS Partition 465 GB Healthy Boot
* Volume 2 D New Volume NTFS Partition 463 GB Healthy
DISKPART>
Zwróć uwagę na gwiazdki? Oznaczają one aktywny dysk, partycję i wolumin. Chociaż nie są to identyfikatory wymagane do tego, aby użytkownik w 100% wiedział, z którą partycją mają do czynienia, możesz przynajmniej wyraźnie zauważyć, że Volume 2 (D :) jest na Partition 1 of Disk 1.
- Istnieją woluminy, które są dyskietkami RAW, co zasadniczo mówi ... to jest surowy dysk i chcę się dowiedzieć, gdzie są te surowe dyski.
Jak widać po utworzeniu woluminu bez systemu plików na 2 GB wolnego miejsca, nie ma to znaczenia:
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- -------
Volume 0 System NTFS Partition 350 MB Healthy System
Volume 1 C OSDisk NTFS Partition 465 GB Healthy Boot
Volume 2 D New Volume NTFS Partition 463 GB Healthy
Volume 3 RAW Partition 2048 MB Healthy
DISKPART> select volume 3
Volume 3 is the selected volume.
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- -------
Volume 0 System NTFS Partition 350 MB Healthy System
Volume 1 C OSDisk NTFS Partition 465 GB Healthy Boot
Volume 2 D New Volume NTFS Partition 463 GB Healthy
* Volume 3 RAW Partition 2048 MB Healthy
DISKPART> list partition
Partition ### Type Size Offset
------------- ---------------- ------- -------
Partition 1 Primary 463 GB 1024 KB
* Partition 2 Primary 2048 MB 463 GB
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 465 GB 0 B
* Disk 1 Online 465 GB 1024 KB
- Powodem, dla którego używam wmic, jest to, że muszę napisać o wielu op dyskach. Czy próbowałeś kiedyś skrypty uzyskiwania informacji z diskpart?
Nie, ale to jest skryptowalne.
W przykładowych danych można wyliczyć dysk,woluminy i partycje. Przez zapętlenie każdego obiektu i jego wybór, możesz utworzyć mapę, której wolumin jest na której partycji i który dysk zawiera tę partycję. Diskpart może nie dostarczyć 100% potrzebnych danych w 100% z 100% wymaganej dokładności, ale jest to najbliższe narzędzie wiersza poleceń, które można znaleźć, aby osiągnąć swój cel.
0 dla odpowiedzi nr 2
wmic logicaldisk get name, volumename
aby uzyskać więcej informacji, użyj wmic logicaldisk get /?