Просмотр файлов на камере с помощью PowerShell

Если я подключу цифровую камеру через USB, Windows Explorer отобразит ее в разделе "Компьютер" как устройство. Я могу просматривать его с помощью проводника, просматривать папки, свойства файлов и т. Д., А также копировать / удалять файлы.

Это все без установки камеры в качестве запоминающего устройства (в этом случае я считаю, что камера будет отображаться как флэш-накопитель с назначенной буквой диска, что делает это легко).

Есть ли у меня способ доступа и просмотра файлов и папок на камере с помощью Windows PowerShell? Насколько я могу судить, никакая буква диска (автоматически) не присваивается устройству.

Я не ищу обходных путей - я могу скопировать файлы с помощью проводника, не проблема. Я спрашиваю, потому что я хочу поиграть с PowerShell:-)

Спасибо

ОБНОВИТЬ:

Мне удалось получить Win32PnPEntity Объект камеры с использованием следующего:

Get-WmiObject Win32_USBControllerDevice | ForEach-Object { $_; [Wmi]$_.Dependent }

С последующим Get-WmiObject win32_pnpentity -filter "name='Canon PowerShot A480'" используя имя, которое я получил из предыдущей команды (PNPDeviceID было бы, вероятно, лучшим выбором, но имя было легче набрать:P)

Тем не менее, я не знаю, могу ли я сделать что-нибудь полезное с этим Win32PnPEntity объект.

3 ответа

Я только что создал сценарий PowerShell, который может сканировать мое подключенное к USB устройство Android, созданный на следующем веб-сайте:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/04/26/use-powershell-to-work-with-windows-explorer.aspx

Я использую следующие API:

  1. Создание COM-объекта Shell.Application:

$ o = New-Object -com Shell.Application

  1. Получите определенное пространство имен, то есть список корневых папок:

$ folder = $ o.NameSpace (0x11)

0x11 относится к константе перечисления ShellSpecialFolderConstants.ssfDRIVES; см. https://msdn.microsoft.com/en-us/library/windows/desktop/bb774096(v=vs.85).aspx

  1. Рекурсивно пройти эту папку $:

$ folder.GetFolder () и $folder.Items

Смотрите мой полный рабочий гист: https://gist.github.com/cveld/8fa339306f8504095815

Вы можете объединить информацию из двух следующих статей: http://blogs.msdn.com/b/powershell/archive/2009/01/10/get-usb-using-wmi-association-classes-in-powershell.aspx

Это позволит вам получить идентификатор устройства, связанный с вашим конкретным устройством USB (например, из свойства Name).

Затем используйте WMI для доступа к файлам. Как создать сценарий PowerShell для копирования файла на USB-накопитель?

Я бы начал с запуска get-PSDrive и посмотрел, появилась ли камера.

Если это произойдет, вы сможете использовать его как обычный диск и использовать командлет copy-item для перемещения элементов:

Ссылка: http://technet.microsoft.com/en-us/library/dd347638.aspx

С уважением Аркасс

Другие вопросы по тегам