قم بإدراج جميع الأجهزة والأقسام ووحدات التخزين في Powershell
-
12-09-2019 - |
سؤال
لدي مجلدات متعددة (كما هو الحال مع الجميع تقريبًا في الوقت الحاضر):على نظام التشغيل Windows يتم تحديدها في النهاية على أنها C:، D:وما إلى ذلك وهلم جرا.كيف يمكنني إدراج كل هذه العناصر على جهاز Unix باستخدام "ls /mnt/" باستخدام Powershell؟
المحلول
للحصول على كافة محركات أقراص نظام الملفات، يمكنك استخدام الأمر التالي:
gdr -PSProvider 'FileSystem'
gdr
هو اسم مستعار ل Get-PSDrive
, ، والذي يتضمن كافة "محركات الأقراص الافتراضية" الخاصة بالتسجيل، وما إلى ذلك.
نصائح أخرى
الحصول على الحجم
ستحصل:DriveLetter، وFileSystemLabel، وFileSystem، وDriveType، وHealthStatus، وSizeRemaining، وSize
على ويندوز بوويرشيل:
Get-PSDrive
[System.IO.DriveInfo]::getdrives()
wmic diskdrive
wmic volume
أيضا الأداة المساعدة dskwipe : http://smithii.com/dskwipe
dskwipe.exe -l
أولاً، على نظام Unix الذي تستخدمه mount
, ، لا ls /mnt
:أشياء كثيرة لم يتم تركيبها /mnt
.
على أية حال، هناك mountvol
أمر DOS، الذي يستمر في العمل في Powershell، وهناك أمر Powershell الخاص Get-PSDrive
.
هذا قديم جدًا، لكني وجدت ما يلي جديرًا بالملاحظة:
PS N:\> (measure-command {Get-WmiObject -Class Win32_LogicalDisk|select -property deviceid|%{$_.deviceid}|out-host}).totalmilliseconds
...
928.7403
PS N:\> (measure-command {gdr -psprovider 'filesystem'|%{$_.name}|out-host}).totalmilliseconds
...
169.474
بدون خصائص التصفية، في نظام الاختبار الخاص بي، من 4319.4196 مللي ثانية إلى 1777.7237 مللي ثانية.ما لم أكن بحاجة إلى إرجاع كائن PS-Drive، سألتزم بـ WMI.
يحرر:أعتقد أن لدينا الفائز:ps n:> (measure-command {[system.io.driveinfo] :: getDrives () | ٪ {$ _. name} | Out-host}). to talmilliseconds 110.9819
على الرغم من أن هذا ليس خاصًا بـ "powershell" ...يمكنك بسهولة سرد محركات الأقراص والأقسام باستخدام diskpart، حجم القائمة
PS C:\Dev> diskpart
Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: Box
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 D DVD-ROM 0 B No Media
Volume 1 C = System NTFS Partition 100 MB Healthy System
Volume 2 G C = Box NTFS Partition 244 GB Healthy Boot
Volume 3 H D = Data NTFS Partition 687 GB Healthy
Volume 4 E System Rese NTFS Partition 100 MB Healthy
لدينا وحدات تخزين متعددة لكل محرك أقراص (بعضها مثبت على أدلة فرعية على محرك الأقراص).يعرض هذا الرمز قائمة بنقاط التثبيت وتسميات وحدة التخزين.من الواضح أنه يمكنك أيضًا استخراج المساحة الحرة وما إلى ذلك:
gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object {
echo "$(echo $_.name) [$(echo $_.label)]"
}
الأمر Run:
Get-PsDrive -PsProvider FileSystem
لمزيد من المعلومات انظر:
وظيفة ملاحظة:> get-psdrive