просматривать файловую систему устройства Android в режиме MTP через powershell с помощью wmiobject

Я просмотрел несколько сообщений и статей, в которых обсуждается, как использовать USB-накопитель для доступа к powershell, например:

Но ни один из них на самом деле не «ответит» на вопрос. В последнем опубликованном сообщении также говорится, что никто никогда не создавал решение MTP из-за определенных ограничений, которые имеет сам MTP (протокол).

Один маршрут, который я выбрал, как бы врезался в стену; Я не знаю, что делать дальше (с объектом wmi). Я использовал следующую программу vbscript и записал идентификатор интересующего меня устройства, полученный из здесь:

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-способ справиться с этим. Как мы должны это сделать?


person deostroll    schedule 22.01.2015    source источник


Ответы (1)


Чтобы найти устройства MTP в Power Shell, используйте эту команду:

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

Пример вывода для 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 -*-

person Audreth    schedule 01.06.2015
comment
Хорошо, как это на самом деле помогает мне просматривать файловую систему мобильного телефона (общую через mtp)? - person deostroll; 02.06.2015
comment
проверьте здесь: github.com/nosalan/powershell-mtp -file-transfer/blob/master/ - person nan; 22.05.2019