В 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:\ Есть идеи, как получить эту информацию? Спасибо
Когда я пытаюсь получить «корень» диска, я получаю обратно букву диска.
Настройка: 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:\
Есть идеи, как получить эту информацию?
Спасибо
Хитрость в том, что имя атрибута отличается от ожидаемого. Попробуйте:
(Get-PSDrive h).DisplayRoot
$ drive = gwmi win32_logicaldisk -filter "DeviceID = 'H:'" if ($ drive.DriveType -eq 4) {write-host "диск является сетевым ресурсом"}
$ fso = new-object -com "Scripting.Filesystemobject" $ Fso.GetDrive ( "Y"). ShareName
Попробуйте WMI:
Get-WMIObject -query "Select ProviderName From Win32_LogicalDisk Where DeviceID='H:'"