sharepoint powershell - Исключение, вызывающее «ExecuteQuery» с аргументом (ами) «0»: «Базовое соединение было закрыто:» - PullRequest
1 голос
/ 02 апреля 2020

что-то не так, и я не знаю, что это, тот же сценарий работает на моей локальной машине, но когда я попробовал это в ВМ, он просто не будет работать и выдает мне исключение

- PowerShell та же версия - тот же PowerShell SDK - я добавил правило, разрешающее PowerShell - мой пользователь - admin - все параметры верны, и я могу войти в SharePoint в браузере

Import-Module 'C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll'
Import-Module 'C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.Runtime.dll'
Clear-Host
# getting all argument before starting the process #
$SiteURL = "user"
$ListName = "list"
$Username ="email"
$Password ="pass"

if ($SiteURL -eq $null -or $ListName -eq $null -or $Username -eq $null -or $Password -eq $null)
    {
        Write-Output "Somthing went wrong!"
        Write-Output "Some of the variables are not correct"
    }
else
    {
        $outfile = $PSCommandPath | Split-Path -Parent
        $outfile += '\items.txt'
        Clear-Host
        Write-Output "Getting Items"
        $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $securePassword=ConvertTo-SecureString $Password -AsPlainText -Force
        $Context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $securePassword)
        $Web = $Context.Web
        $List = $Web.get_lists().getByTitle($ListName)
        $itemCreateInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation
        $ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
        $Context.Load($ListItems)
        $Context.ExecuteQuery()
        $ListItems | ForEach-Object {
            $output=$_["Title"] + "~~"
            $output | Out-File -FilePath $outfile -Append
        }
        Write-Output "Done!"
    }

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Похоже, что безопасность локальной машины имеет сертификат SSL для моей учетной записи по умолчанию, но в виртуальной машине этот сертификат отсутствовал, поэтому я просто вызвал его, используя TLS 1.2

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

для первого строка моего кода Power-Shell и все работало хорошо

0 голосов
/ 03 апреля 2020

Работает нормально, основываясь на моих тестах.

Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" 

Clear-Host
# getting all argument before starting the process #
$SiteURL = "https://xxx.sharepoint.com/sites/lee"
$ListName = "testlist"
$Username ="user@xxx.onmicrosoft.com"
$Password ="password"

if ($SiteURL -eq $null -or $ListName -eq $null -or $Username -eq $null -or $Password -eq $null)
    {
        Write-Output "Somthing went wrong!"
        Write-Output "Some of the variables are not correct"
    }
else
    {
        $outfile = $PSCommandPath | Split-Path -Parent
        $outfile += '\items.txt'
        Clear-Host
        Write-Output "Getting Items"
        $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $securePassword=ConvertTo-SecureString $Password -AsPlainText -Force
        $Context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $securePassword)
        $Web = $Context.Web
        $List = $Web.get_lists().getByTitle($ListName)
        $itemCreateInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation
        $ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
        $Context.Load($ListItems)
        $Context.ExecuteQuery()
        $ListItems | ForEach-Object {
            $output=$_["Title"] + "~~"
            $output | Out-File -FilePath $outfile -Append
        }
        Write-Output "Done!"
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...