преглеждайте файловата система на 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