适用于SharePoint Online
我有一张CSV,列出了网站名称及其网址。它包含2列:
SiteName和SiteURL
我正在尝试创建一个PowerShell脚本,该脚本将读取CSV文件,阅读SiteURL。然后让它返回网站的名称和它正在使用的MasterPage。结果可以在屏幕上返回,也可以导出到另一个CSV。
以下是我正在尝试的代码但是我在添加正确的CMDLETS时遇到了问题。我对PowerShell很新,任何帮助都会非常感激。
ng
答案 0 :(得分:0)
假设你有$siteurls
的集合,你可以尝试类似下面的内容:
foreach($url in $siteurls)
{
$web = Get-SPWeb($url);
$masterPage = $web.GetFile($web.MasterUrl);
$masterPage.Name //name of the masterpage
$web.Title //name of the website
}
让我知道这是否有效。
修改强>
更新的答案:这包括逐行阅读CSV文件和处理。一些假设如下:
SiteName
和SiteUrl
-delimeter
开关。更新的代码现在是:
$fileToRead= Import-CSV -Path <absolute path of your CSV file here>
foreach($site in $fileToRead)
{
$web = Get-SPWeb($site.SiteUrl); //this reads the SiteUrl value in the current line
$masterPage = $web.GetFile($web.MasterUrl);
$masterPage.Name //name of the masterpage
$web.Title //name of the website
}
修改强>
更新了使用SharePoint PNP的答案
connect-SPOService -Url $ adminUrl -Credential $ pscreds
$fileToRead= Import-CSV -Path C:\...\sitemasterpages.csv
foreach($site in $fileToRead)
{
$web = Get-Pnpweb($site.SiteUrl);
$masterPage = $web.Get-Pnpfile($web.MasterUrl);
$masterPage.Name
$web.Title
}
请注意,我使用了基于SharePoint PnP here文档的Get-Pnpfile。