PowerShellでは、ドライブのルートを特定するにはどうすればよいですか(ネットワークドライブであると仮定して)

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

質問

PowerShellでは、ドライブがネットワークドライブかどうかを知ることができる場合でも: PowerShellで、現在のドライブがネットワークドライブであるかどうかを確認するにはどうすればよいですか

" root"を取得しようとするとドライブの場合、ドライブ文字が返されます。

セットアップ: 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:'"

他のヒント

トリックは、属性名が予想と異なることです。 試してください:

(Get-PSDrive h).DisplayRoot

$ drive = gwmi win32_logicaldisk -filter" DeviceID = 'H:'" if($ drive.DriveType -eq 4){write-host" drive is a network share"}

$ fso = new-object -com" Scripting.Filesystemobject" $ fso.GetDrive(" Y")。ShareName

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top