В PowerShell, даже если можно узнать, является ли диск сетевым диском: см. Как в PowerShell определить, является ли текущий диск сетевым или нет?
Когда я пытаюсь получить "корень" диска, я возвращаю букву диска.
Настройка: "Чистое использование" MS-Dos показывает, что 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:\
Есть идеи, как получить эту информацию?
Спасибо





Попробуйте WMI:
Get-WMIObject -query "Select ProviderName From Win32_LogicalDisk Where DeviceID='H:'"
Ага. Я отредактирую. Я на самом деле использовал псевдоним gwmi, чтобы удалить псевдоним для публикации, и добился лишь частичного успеха.
$ drive = gwmi win32_logicaldisk -filter "DeviceID = 'H:'" if ($ drive.DriveType -eq 4) {write-host "диск является сетевым ресурсом"}
$ fso = новый-объект -com "Scripting.Filesystemobject" $ fso.GetDrive ("Y"). ShareName
Хитрость в том, что имя атрибута отличается от ожидаемого. Пытаться:
(Get-PSDrive h).DisplayRoot
Мелочь, это Get-WMIObject вместо Get-WMI :)