gpt4 book ai didi

android - 使用 wmiobject 通过 powershell 在 MTP 模式下浏览 android 设备的文件系统

转载 作者:太空狗 更新时间:2023-10-29 14:59:43 25 4
gpt4 key购买 nike

我浏览了一些讨论如何使用 powershell 访问 USB 驱动器的帖子和文章,例如:

但他们都没有真正“回答”这个问题。上一篇分享的帖子还说,由于 MTP(协议(protocol))本身具有某些限制,因此没有人创建过 MTP 解决方案。

我走的一条路线有点碰壁;我不知道下一步该做什么(使用 wmi 对象)。我使用了以下 vbscript 程序,并记下了我感兴趣的从 here 获得的设备 ID:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colDevices = objWMIService.ExecQuery _
("Select * From Win32_USBControllerDevice")

For Each objDevice in colDevices
strDeviceName = objDevice.Dependent
strQuotes = Chr(34)
strDeviceName = Replace(strDeviceName, strQuotes, "")
arrDeviceNames = Split(strDeviceName, "=")
strDeviceName = arrDeviceNames(1)
Set colUSBDevices = objWMIService.ExecQuery _
("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
For Each objUSBDevice in colUSBDevices
Wscript.Echo objUSBDevice.Description
Next
Next

我在下面的 powershell 命令中插入了它来获取 wmi 对象:

Get-WmiObject win32_pnpentity -filter "DeviceID='<the_device_id>'" 

现在我想我有了 WMI 对象。但是我能用它做什么。

根据我链接到的上一篇文章,我有一种预感,有一种 COM 方法可以处理这个问题。我们该怎么做?

最佳答案

要在 Power Shell 中查找 MTP 设备,请使用此命令:

Get-WmiObject -class win32_pnpentity -computername localhost | where-object {$_.HardwareID -like "*MTP*"} | format-list

Example output for a Samsung Galaxy S5

__GENUS : 2
__CLASS : Win32_PnPEntity
__SUPERCLASS : CIM_LogicalDevice
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_PnPEntity.DeviceID="USB\\VID_04E8&PID_6860&MS_COMP_MTP&SAMSUNG_ANDROID\\6&8F62A49&0&0000"
__PROPERTY_COUNT : 24
__DERIVATION : {CIM_LogicalDevice, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER : -*- Computer Name -*-
__NAMESPACE : root\cimv2
__PATH : \\-*- Computer Name -*-\root\cimv2:Win32_PnPEntity.DeviceID="USB\\VID_04E8&PID_6860&MS_COMP_MTP&SAMSUNG_ANDROID\\6&8F62A49&0&0000"
Availability :
Caption : -*- device display name in explorer -*-
ClassGuid : {eec5ad98-8080-425f-922a-dabf3de3f69a}
CompatibleID : {USB\MS_COMP_MTP, USB\Class_06&SubClass_01&Prot_01, USB\Class_06&SubClass_01, USB\Class_06...}
ConfigManagerErrorCode : 0
ConfigManagerUserConfig : False
CreationClassName : Win32_PnPEntity
Description : SM-G900P
DeviceID : USB\VID_04E8&PID_6860&MS_COMP_MTP&SAMSUNG_ANDROID\6&8F62A49&0&0000
ErrorCleared :
ErrorDescription :
HardwareID : {USB\VID_04E8&PID_6860&REV_0400&MS_COMP_MTP&SAMSUNG_Android, USB\VID_04E8&PID_6860&MS_COMP_MTP&SAMSUNG_Android, USB\SAMSUNG_MOBILE&MS_COMP_MTP&SAMSUNG_Android, USB\SAMSUNG_MOBILE&MI_00...}
InstallDate :
LastErrorCode :
Manufacturer : Samsung Electronics Co., Ltd.
Name : -*- device display name in explorer -*-
PNPDeviceID : USB\VID_04E8&PID_6860&MS_COMP_MTP&SAMSUNG_ANDROID\6&8F62A49&0&0000
PowerManagementCapabilities :
PowerManagementSupported :
Service : WUDFRd
Status : OK
StatusInfo :
SystemCreationClassName : Win32_ComputerSystem
SystemName : -*- Computer Name -*-

关于android - 使用 wmiobject 通过 powershell 在 MTP 模式下浏览 android 设备的文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28092527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com