Я пытаюсь создать сценарий PowerShell для получения набора данных для файлов отчетов с нашего корпоративного сайта Sharepoint. Используя getlistitems, я могу извлечь из наших списков приличный кусок необходимых данных, но, похоже, он возвращает только элементы из представления по умолчанию каждого списка. Я хотел бы установить его, чтобы вытащить из представления «Все элементы», но я пытаюсь получить его. См. Мой код ниже.
$serverurl = "https:linkhiddenforprivacy/_vti_bin/Lists.asmx"
$xml = New-WebServiceProxy -Uri $serverurl -UseDefaultCredential
$dslist = $xml.GetListCollection()
$overalllist = $dslist.ChildNodes
foreach($listitem in $overalllist) {
try {
$xmlDoc = new-object System.Xml.XmlDocument
$query = $xmlDoc.CreateElement("Query")
$viewFields = $xmlDoc.CreateElement("ViewFields")
$queryOptions = $xmlDoc.CreateElement("QueryOptions")
$queryOptions.InnerXml = "<ViewAttributes Scope='RecursiveAll' IncludeMandatoryColumns='FALSE' />"
$rowLimit = "10000"
$view = $overalllist.views["All Items"]
$listitems = $xml.getlistitems($listitem.id, $view ,$null, $null, $rowLimit, $queryOptions, $null).data.row
foreach($child in $listitems) {
if($child.ows_DocIcon -eq "rdl"){
$vs = $xml.GetVersionCollection($listitem.ID, $child.ows_ID, "_UIVersionString")
$childlib = $child.ows_FileRef
$childname = $child.ows_LinkFileName
[string]$childowner = $child.ows_ReportOwner
$childcategory = $child.ows_ReportCategory
$childdescription = $child.ows_ReportDescription
$childstatus = $child.ows_ReportStatus
[PSCustomObject]@{
'Doctype' = $child.ows_DocIcon
'Library' = $childlib.substring($childlib.indexof('#') + 1, $childlib.lastindexof('/') - $childlib.indexof('#') - 1)
'Report' = $childname
'Owner' = $childOwner.Substring($childowner.indexof('#') + 1, $childowner.Length - $childowner.IndexOf('#') - 1)
'Category' = $childCategory
'Description' = $childDescription
'Status' = $childStatus
'Version' = $vs.Version[0]._UIVersionString
'Childlib' = $childlib
} | Export-Csv output.csv -Append -NoTypeInformation
}
Я пробовал несколько вариантов этого и не добился успеха. Я новичок в Powershell, поэтому любая помощь будет принята с благодарностью.