我正在尝试将自定义母版页应用于sharepoint环境中的所有网站,并按照
的方式进行思考我希望能够使用powershell将自定义母版页应用于每个网站。我知道使用
$web = Get-SPWeb http://sharepoint
$web.CustomMasterUrl = "/_catalogs/masterpage/custom_v4.master"
$web.Update()
请有人帮助所有网站的循环。
答案 0 :(得分:0)
您需要将网址数组管道传输到Foreach-Object
:
'http://sharepoint/',
'http://sharepoint/site1',
'http://sharepoint/site1/1',
'http://sharepoint/site2/1' | Foreach-Object {
$web = Get-SPWeb $_
$web.CustomMasterUrl = "/_catalogs/masterpage/custom_v4.master"
$web.Update()
}
或以命令式的方式做:
$urls = 'http://sharepoint/', 'http://sharepoint/site1', 'http://sharepoint/site1/1', 'http://sharepoint/site2/1'
foreach($url in $urls) {
$web = Get-SPWeb $url
$web.CustomMasterUrl = "/_catalogs/masterpage/custom_v4.master"
$web.Update()
}
答案 1 :(得分:0)
如果要将master应用于整个网站集,请尝试此操作:
foreach ($site in get-spsite -url http://sharepoint*) {
$web = Get-SPWeb $site
$web.CustomMasterUrl = "/_catalogs/masterpage/custom_v4.master"
$web.Update()
}
有关get-spsite的更多信息,您可以在sharepoint automation阅读此帖子。希望有所帮助!
答案 2 :(得分:0)
我不会依赖网站的简单网址定位。我想你想要的是这个:
$site = Get-SPSite "http://localhost"
$site.AllWebs | foreach-object { `
$_.CustomMasterUrl = "/_catalogs/masterpage/custompagename.master";
$web.Update()
}
AllWebs属性返回网站集中的所有网站。如果您确实使用了变体,您可能希望将它们从列表中排除某些某种方式使用?{$ _。Name -like'en-us'}并在foreach管道之前管道。