في بوويرشيل، كيف يمكنني تحديد ما إذا كان محرك الأقراص الحالي هو محرك أقراص شبكة اتصال أو لا؟
-
03-07-2019 - |
سؤال
وأريد أن أعرف، من داخل بوويرشيل، إذا كان محرك الأقراص الحالي هو محرك أقراص معين أم لا.
ومما يؤسف له، واحصل على-PSDrive لا يعمل "كما هو متوقع":
PS:24 H:\temp
>get-psdrive h
Name Provider Root CurrentLocation
---- -------- ---- ---------------
H FileSystem H:\ temp
ولكن في MS-دوس "صافي استخدام" يدل على ان H: هو في الحقيقة تعيين محرك أقراص الشبكة:
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
OK H: \\spma1fp1\JARAVJ$ Microsoft Windows Network
The command completed successfully.
ما أريد القيام به هو الحصول على جذر محرك الأقراص وتبين أنها في موجه (انظر: <لأ href = "https://stackoverflow.com/questions/157923/customizing-powershell-prompt-equivalent- لCMDS ميلا في الغالون "> تخصيص بوويرشيل موجه - أي ما يعادل CMD ل$ M $ P $ _ $ + $ G )
المحلول
استخدم إطار .NET:
PS H:\> $x = new-object system.io.driveinfo("h:\")
PS H:\> $x.drivetype
Network
نصائح أخرى
وحاول WMI:
Get-WMI -query "Select ProviderName From Win32_LogicalDisk Where DeviceID='H:'"
وهناك طريقة بديلة لاستخدام WMI:
وget-wmiobject Win32_LogicalDisk | ? {$_.deviceid -eq "s:"} | % {$_.providername}
والحصول على جميع محركات أقراص الشبكة مع:
وget-wmiobject Win32_LogicalDisk | ? {$_.drivetype -eq 4} | % {$_.providername}
وهناك تباين أكثر إحكاما قليلا على الاجابة المقبولة:
[System.IO.DriveInfo]("C")
وأغتنم هذه خطوة أخرى إلى الأمام كما هو موضح أدناه:
([System.IO.DriveInfo]("C")).Drivetype
لاحظ أن هذا يعمل فقط من أجل النظام المحلي. استخدام WMI لأجهزة الكمبيوتر البعيدة.
والطريقة الأكثر موثوقية لاستخدام WMI
get-wmiobject win32_volume | ? { $_.DriveType -eq 4 } | % { get-psdrive $_.DriveLetter[0] }
ووDriveType هو التعداد الطرافة hthe التالية القيم
و0 - غير معروف 1 - لا دليل الجذر 2 - القرص القابل للإزالة 3 - القرص المحلي 4 - محرك أقراص شبكة الاتصال 5 - قرص مضغوط 6 - RAM القرص
وهنا وصلة لبلوق وظيفة فعلت <لأ href = "http://blogs.msdn.com/jaredpar/archive/2007/12/06/filtering-get-psdrive-to-all-local-drives .aspx اتصال "يختلط =" نوفولو noreferrer "> على الموضوع و