In PowerShell, how can I determine if the current drive is a networked drive or not?

可紊 提交于 2019-11-29 10:22:07

Use the .NET framework:

PS H:\> $x = new-object system.io.driveinfo("h:\")
PS H:\> $x.drivetype
Network

Try WMI:

Get-WMI -query "Select ProviderName From Win32_LogicalDisk Where DeviceID='H:'"

An alternative way to use WMI:

get-wmiobject Win32_LogicalDisk | ? {$_.deviceid -eq "s:"} | % {$_.providername}

Get all network drives with:

get-wmiobject Win32_LogicalDisk | ? {$_.drivetype -eq 4} | % {$_.providername}

A slightly more compact variation on the accepted answer:

[System.IO.DriveInfo]("C")
Jeffery Hicks

Take this a step further as shown below:

([System.IO.DriveInfo]("C")).Drivetype

Note this only works for the the local system. Use WMI for remote computers.

JaredPar

The most reliable way is to use WMI

get-wmiobject win32_volume | ? { $_.DriveType -eq 4 } | % { get-psdrive $_.DriveLetter[0] } 

The DriveType is an enum wit hthe following values

0 - Unknown 1 - No Root Directory 2 - Removable Disk 3 - Local Disk 4 - Network Drive 5 - Compact Disk 6 - RAM Disk

Here's a link to a blog post I did on the subject

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!