Ошибка: не удается найти перегрузку для «restore» и количество аргументов: «1» - PullRequest
1 голос
/ 11 февраля 2020

Я получаю эту ошибку из следующего кода. Это происходит из $ Context.Load ($ RecycleBinItems). Есть идеи, что случилось с кодом? Я пытаюсь восстановить все предметы из корзины.


Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\SharePointPnPPowerShellOnline\3.17.2001.2\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\SharePointPnPPowerShellOnline\3.17.2001.2\Microsoft.SharePoint.Client.Runtime.dll"

Import-Module 'Microsoft.PowerShell.Security'

#Get the Site Owners Credentials to connect the SharePoint
$SiteUrl = "https://phaselinknet.sharepoint.com"
$UserName = Read-host "Enter the Email ID"  
$Password = Read-host - assecurestring "Enter Password for $AdminUserName"  
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $Password)  

# Once Connected, get the Site information using current Context objects
Try {  
    $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)  
    $Context.Credentials = $Credentials
    $Site = $Context.Site  
    $RecycleBinItems = $Site.RecycleBin  
    $Context.Load($Site)  
    $Context.Load($RecycleBinItems)  
    $Context.ExecuteQuery() 
    Write-Host "Total Number of Files found in Recycle Bin:" $RecycleBinItems.Count
}

catch {  
    write - host "Error: $($_.Exception.Message)" - foregroundcolor Red  
}

# using for loop to restore the item one by one  
Try {

    if($RecycleBinItems)
    {
     foreach($Item in $RecycleBinItems)
        {
            $Site.RecycleBin.restore($Item.ID)
            #Write-Host "Item restored:"$Item.Title
        }
    }
}

catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Ответы [ 3 ]

0 голосов
/ 11 февраля 2020

Спасибо за совет. Итак, я загружаю первые 10 элементов в корзину, и Write-Host выписывает правильные файлы, но $ Item.Restore () замечает это, поскольку файлы все еще не восстановлены:

$itemsToRestore = @()

for ($i = 0; $i -lt 10; $i++)
{
    $Item = $RecycleBinItems[$i]
    $itemsToRestore += $Item
}
Write-Host "Total Number of Files to Restore:" $itemsToRestore.Count

foreach($item in $itemsToRestore) 
{
    Write-Host "Item:" $Item.Title
    $item.Restore()
}
0 голосов
/ 12 февраля 2020

Я нашел проблему. Я пропустил $ Context.ExecuteQuery () после $ Item.Restore (). Это работает сейчас.

0 голосов
/ 11 февраля 2020

Сообщение об ошибке дает вам ответ. Не существует версии метода Restore, которая принимает 1 параметр.

Вам нужно загрузить список предметов, симулированных для этого

$Item = $RecycleBin | Where{$_.Title -eq $ItemName}

Затем вызвать восстановление для предметов.

if($Item -ne $null)
{
 $Item.Restore()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...