في بوويرشيل، كيف يمكنني تحديد ما إذا كان محرك الأقراص الحالي هو محرك أقراص شبكة اتصال أو لا؟

StackOverflow https://stackoverflow.com/questions/158359

سؤال

وأريد أن أعرف، من داخل بوويرشيل، إذا كان محرك الأقراص الحالي هو محرك أقراص معين أم لا.

ومما يؤسف له، واحصل على-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 "> على الموضوع و

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top