В PowerShell, как я могу определить корень диска (предположим, что это сетевой диск)

В PowerShell, даже если можно узнать, является ли диск сетевым диском: см. В PowerShell, как я могу определить, является ли текущий диск сетевым диском или нет?

Когда я пытаюсь получить "корень" диска, мне возвращается буква диска.

Настройка: MS-Dos "net use" показывает, что H: действительно является подключенным сетевым диском:

New connections will be remembered.

Status       Local     Remote                    Network
-------------------------------------------------------------------------------
OK           H:        \\spma1fp1\JARAVJ$        Microsoft Windows Network

The command completed successfully.

Get-PSDrive сообщает нам, что корень - это H:

PS:24 H:\temp
>get-psdrive  h

Name       Provider      Root      CurrentLocation
----       --------      ----      ---------------
H          FileSystem    H:\          temp

и использование system.io.driveinfo не дает нам полного ответа:

PS:13 H:\
>$x = new-object system.io.driveinfo("h:\")
PS:14 H:\
>$x.DriveType
Network
PS:15 H:\
>$x.RootDirectory

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        29/09/2008     16:45            h:\

Есть идеи, как получить эту информацию?

Спасибо


person JJarava    schedule 01.10.2008    source источник


Ответы (4)


Попробуйте WMI:

Get-WMIObject -query "Select ProviderName From Win32_LogicalDisk Where DeviceID='H:'"
person EBGreen    schedule 01.10.2008
comment
Мелочь, это Get-WMIObject вместо Get-WMI :) - person JJarava; 01.10.2008
comment
Ага. Я отредактирую. Я на самом деле использовал псевдоним gwmi, чтобы удалить псевдоним для публикации, и добился лишь частичного успеха. - person EBGreen; 01.10.2008

Хитрость в том, что имя атрибута отличается от ожидаемого. Пытаться:

(Get-PSDrive h).DisplayRoot

person Bozidar    schedule 11.04.2016

$ drive = gwmi win32_logicaldisk -filter "DeviceID = 'H:'" if ($ drive.DriveType -eq 4) {write-host "диск является сетевым ресурсом"}

person Shay Levy    schedule 01.10.2008

$ fso = новый-объект -com "Scripting.Filesystemobject" $ fso.GetDrive ("Y"). ShareName

person Jeffery Hicks    schedule 06.10.2008