Я новичок в PowerShell и в настоящее время пишу сценарий, который выполняет резервное копирование элементов списка SharePoint. Формат вывода - файл excel. В моем модуле есть один метод, который принимает 3 параметра: URL-адрес сайта SharePoint, имя списка и путь, по которому должен быть сохранен файл Excel.
Поэтому я вызываю этот метод из тестового скрипта и передаю параметры. Но я получаю сообщение об ошибке, когда пытаюсь создать экземпляр объектов Site и List.
Вот мой модуль:
Function Export-SPListToExcel($siteURL, $listname, $FolderToSaveTo)
{
Import-Modules
$site = new-object Microsoft.SharePoint.SPSite($siteURL)
$web = $site.OpenWeb()
$list = $web.Lists[$listname.ToString()]
$table = $list.Items.GetDataTable()
$Path = $FolderToSaveTo + (Get-Date).ToString().Replace(" ", "_").Replace(":","").Replace(".","") + ".xlsx"
$table | Export-XLSX -Path $Path -ClearSheet
}
Function Import-Modules
{
if(-Not (Get-Module -ListAvailable -Name "PSExcel"))
{
$psd = (Split-Path -Parent $PSCommandPath) + "\PSExcel\PSExcel.psd1"
$psm = (Split-Path -Parent $PSCommandPath) + "\PSExcel\PSExcel.psm1"
Import-Module $psd
Import-Module $psm
}
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null)
{
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
}
И вот мой тестовый скрипт:
if(-Not (Get-Module -ListAvailable -Name "SaveAsExcel"))
{
Import-Module C:\Temp\PSExcel-master\PSExcel-master\SaveAsExcel.psm1
}
$path = "C:\Temp\"
$url = "http://sp2013dev3:85/sites/wtpersonal"
$list = "Activities"
Export-SPListToExcel($url, $list, $path)
Ошибка возникает в этой строке:
$site = new-object Microsoft.SharePoint.SPSite($siteURL)
и эта линия
$list = $web.Lists[$listname.ToString()]
Что я здесь делаю неправильно?
РЕДАКТИРОВАТЬ: если я жестко запрограммирую свои параметры в модуль, это сработает.