6

私が探しているものを達成する方法を説明するC#や他のいくつかの言語の記事を見たことがありますが、それらを変換する方法がわかりません。

4

4 に答える 4

8

試す:

gwmi win32_diskdrive | ?{$_.interfacetype -eq "USB"} | %{gwmi -Query "ASSOCIATORS OF {Win32_DiskDrive.DeviceID=`"$($_.DeviceID.replace('\','\\'))`"} WHERE AssocClass = Win32_DiskDriveToDiskPartition"} |  %{gwmi -Query "ASSOCIATORS OF {Win32_DiskPartition.DeviceID=`"$($_.DeviceID)`"} WHERE AssocClass = Win32_LogicalDiskToPartition"} | %{$_.deviceid}

1つおよび複数のUSBデバイスを接続してテストしました。

于 2012-05-17T12:01:45.843 に答える
7

しばらくの間、話題が落ちていることは知っていますが、かなり頻繁に戻ってくるものなので、少し更新したいと思いました。

Windows 7以降を使用している場合、はるかに簡単な解決策は次のようになります。

Get-WmiObject Win32_Volume -Filter "DriveType='2'"

そして、マジックナンバーを避けたい場合:

Get-WmiObject Win32_Volume -Filter ("DriveType={0}" -f [int][System.IO.DriveType]::Removable)

参照:
https ://docs.microsoft.com/en-us/previous-versions/windows/desktop/vdswmi/win32-volume
https://docs.microsoft.com/en-us/dotnet/api/system.io 。ドライブタイプ

于 2013-02-06T09:45:32.243 に答える
3

PowerShell v3.0以降、Microsoftは、 ASSOCIATORSクエリメソッドGet-Cim*の醜さよりもこれを簡単にするコマンドを導入しました。Get-WmiObject

Get-CimInstance -Class Win32_DiskDrive -Filter 'InterfaceType = "USB"' -KeyOnly | 
    Get-CimAssociatedInstance -ResultClassName Win32_DiskPartition -KeyOnly |
    Get-CimAssociatedInstance -ResultClassName Win32_LogicalDisk |
    Format-List *

または:

Get-CimInstance -Class Win32_DiskDrive -Filter 'InterfaceType = "USB"' -KeyOnly |
    Get-CimAssociatedInstance -Association Win32_DiskDriveToDiskPartition -KeyOnly |
    Get-CimAssociatedInstance -Association Win32_LogicalDiskToPartition |
    Format-List *

上記のコマンドは同等です。

于 2017-12-29T08:32:36.593 に答える
3
get-volume | where drivetype -eq removable | foreach driveletter

volume | ? drivetype -eq removable | % driveletter
于 2019-06-23T20:16:51.253 に答える