PowerShellでは、現在のドライブがネットワークドライブかどうかをどのように判断できますか?

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

質問

現在のドライブがマップされたドライブかどうかを、Powershell内から知る必要があります。

残念ながら、Get-PSDriveは「期待どおり」動作していません:

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

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

ただし、MS-Dosの「純使用」ではH:が実際にマップされたネットワークドライブであることを示しています:

New connections will be remembered.

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

The command completed successfully.

私がしたいのは、ドライブのルートを取得してプロンプトに表示することです( PowerShellプロンプトのカスタマイズ-CMDの$ M $ P $ _ $ + $ Gと同等?

役に立ちましたか?

解決

.NETフレームワークを使用:

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

他のヒント

WMIを試す:

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

WMIを使用する別の方法:

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

すべてのネットワークドライブを取得するには:

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

受け入れられた答えのわずかにコンパクトなバリエーション:

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

以下に示すように、これをさらに一歩進めます。

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

これはローカルシステムでのみ機能することに注意してください。リモートコンピューターにWMIを使用します。

最も信頼できる方法は、WMIを使用することです

get-wmiobject win32_volume | ? { 

最も信頼できる方法は、WMIを使用することです

<*>

DriveTypeは、次の値を持つ列挙型です

0-不明 1-ルートディレクトリなし 2-リムーバブルディスク 3-ローカルディスク 4-ネットワークドライブ 5-コンパクトディスク 6-RAMディスク

これは私がやったブログ投稿へのリンクです件名

.DriveType -eq 4 } | % { get-psdrive

最も信頼できる方法は、WMIを使用することです

<*>

DriveTypeは、次の値を持つ列挙型です

0-不明 1-ルートディレクトリなし 2-リムーバブルディスク 3-ローカルディスク 4-ネットワークドライブ 5-コンパクトディスク 6-RAMディスク

これは私がやったブログ投稿へのリンクです件名

.DriveLetter[0] }

DriveTypeは、次の値を持つ列挙型です

0-不明 1-ルートディレクトリなし 2-リムーバブルディスク 3-ローカルディスク 4-ネットワークドライブ 5-コンパクトディスク 6-RAMディスク

これは私がやったブログ投稿へのリンクです件名

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