Просмотр файлов на камере с помощью 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, созданный на следующем веб-сайте:
Я использую следующие API:
- Создание COM-объекта Shell.Application:
$ o = New-Object -com Shell.Application
- Получите определенное пространство имен, то есть список корневых папок:
$ folder = $ o.NameSpace (0x11)
0x11 относится к константе перечисления ShellSpecialFolderConstants.ssfDRIVES; см. https://msdn.microsoft.com/en-us/library/windows/desktop/bb774096(v=vs.85).aspx
- Рекурсивно пройти эту папку $:
$ 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
С уважением Аркасс