Я новичок в скриптовании PowerShell и любезно терплю мою глупость, если она есть. Я пытаюсь написать скрипт для резервного копирования выбранных папок с моего телефона Android, который отображается как устройство MTP в Windows. Перед копированием для подключения я нашел два фрагмента кода для подключения и создания объекта (я думаю, ) для телефона.
Код 1
function Get-PhoneMainDir($phoneName)
{
$o = New-Object -com Shell.Application
$rootComputerDirectory = $o.NameSpace(0x11)
$phoneDirectory = $rootComputerDirectory.Items() | Where-Object {$_.Name -eq $phoneName} | select -First 1
if($phoneDirectory -eq $null)
{
throw "Not found '$phoneName' folder in This computer. Connect your phone."
}
return $phoneDirectory;
}
$phoneName = "ONEPLUS A3003"
$phoneRootDir = Get-PhoneMainDir $phoneName
Write-Host $phoneRootDir
Код 2
function Get-Phone
{
param($phoneName)
$shell = Get-ShellProxy
# 17 (0x11) = ssfDRIVES from the ShellSpecialFolderConstants (https://msdn.microsoft.com/en-us/library/windows/desktop/bb774096(v=vs.85).aspx)
# => "My Computer" — the virtual folder that contains everything on the local computer: storage devices, printers, and Control Panel.
# This folder can also contain mapped network drives.
$shellItem = $shell.NameSpace(17).self
$phone = $shellItem.GetFolder.items() | where { $_.name -eq $phoneName }
return $phone
}
function Get-ShellProxy
{
if( -not $global:ShellProxy)
{
$global:ShellProxy = new-object -com Shell.Application
}
$global:ShellProxy
}
$phoneName ="ONEPLUS A3003"
$phone = Get-Phone -phoneName $phoneName
Write-Host $phone
Write-Host $phone.GetFolder.Items()
при попытке печати $ phoneRootDir в коде 1, а также в $ phone и $ phone.GetFolder.Items () дает мне
System .__ ComObject
как мне получить список файлов и пройти через с этим объектом?