批量导入导出站点权限site permissions
批量导入站点权限
cls
$Web = Get-SPWeb "http://16.178.115.14:91/"
Get-Content c:\export\account.txt | ForEach-Object {
Write-Host $_ $account = $web.EnsureUser($_.Split(',')[0])
$role = $web.RoleDefinitions[$_.Split(',')[1]] $assignment = New-Object Microsoft.SharePoint.SPRoleAssignment($account)
$assignment.RoleDefinitionBindings.Add($role) $web.RoleAssignments.Add($assignment)
}
-----------
mitpalm4\xuting,Full Control
mitpalm4\lily,Read
批量导出站点权限
cls
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } $properties=@{SiteUrl='';SiteTitle='';ListTitle='';ObjectType='';ObjectUrl='';ParentGroup='';GroupOwner='';MemberType='';MemberName='';MemberLoginName='';JobTitle='';Department='';RoleDefinitionBindings='';}; $Permissions=@(); $UserInfoList=""; $RootWeb=""; $SiteCollectionUrl = Read-Host "Enter a Site Collection Url"; Get-SPSite $SiteCollectionUrl|Get-SPWeb -limit ALL|%{ $web = $_; #Root Web of the Site Collection if($web.IsRootWeb -eq $True){ $RootSiteTitle = $web.Title; $RootWeb = $web; $UserInfoList = $RootWeb.GetList([string]::concat($web.Url,"/_catalogs/users")); } $siteUrl = $web.Url; $siteRelativeUrl = $web.ServerRelativeUrl; Write-Host $siteUrl -Foregroundcolor "Red"; $siteTitle = $web.Title; #Get Site Level Permissions if it's unique if($web.HasUniqueRoleAssignments -eq $True){ $web.RoleAssignments|%{ $RoleDefinitionBindings=@(); $_.RoleDefinitionBindings|%{ $RoleDefinitionBindings += $_.Name; } $MemberName = $_.Member.Name; $MemberLoginName = $_.Member.LoginName; $MemberType = $_.Member.GetType().Name; $GroupOwner = $_.Member.Owner.Name; if($MemberType -eq "SPGroup"){ $JobTitle="NA"; $Department="NA"; $permission = New-Object -TypeName PSObject -Property $properties; $permission.SiteUrl =$siteUrl; $permission.SiteTitle = $siteTitle; $permission.ListTitle = "NA"; $permission.ObjectType = "Site"; $permission.ObjectUrl = $siteRelativeUrl; $permission.MemberType = $MemberType; $permission.ParentGroup = $MemberName; $permission.GroupOwner = $GroupOwner; $permission.MemberName = $MemberName; $permission.MemberLoginName = $MemberLoginName; $permission.JobTitle = $JobTitle; $permission.Department = $Department; $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ","; $Permissions +=$permission; #Expand Groups $web.Groups[$MemberName].Users|%{ $JobTitle="NA"; $Department="NA"; try{ $userinfo = $UserInfoList.GetItemById($_.ID); $JobTitle=$userinfo["JobTitle"]; $Department=$userinfo["Department"]; } catch{ } $permission = New-Object -TypeName PSObject -Property $properties; $permission.SiteUrl =$siteUrl; $permission.SiteTitle = $siteTitle; $permission.ListTitle = "NA"; $permission.ObjectType = "Site"; $permission.ObjectUrl = $siteRelativeUrl; $permission.MemberType = "SPGroupMember"; $permission.ParentGroup = $MemberName; $permission.GroupOwner = $GroupOwner; $permission.MemberName = $_.DisplayName; $permission.MemberLoginName = $_.UserLogin; $permission.JobTitle = $JobTitle; $permission.Department = $Department; $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ","; $Permissions +=$permission; } } elseif($MemberType -eq "SPUser"){ $JobTitle="NA"; $Department="NA"; try{ $userinfo = $UserInfoList.GetItemById($_.ID); $JobTitle=$userinfo["JobTitle"]; $Department=$userinfo["Department"]; } catch{ } $permission = New-Object -TypeName PSObject -Property $properties; $permission.SiteUrl =$siteUrl; $permission.SiteTitle = $siteTitle; $permission.ListTitle = "NA"; $permission.ObjectType = "Site"; $permission.MemberType = $MemberType; $permission.ObjectUrl = $siteRelativeUrl; $permission.ParentGroup = "NA"; $permission.GroupOwner = "NA"; $permission.MemberName = $MemberName; $permission.MemberLoginName = $MemberLoginName; $permission.JobTitle = $JobTitle; $permission.Department = $Department; $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ","; $Permissions +=$permission; } } } #Get all Uniquely secured objects $uniqueObjects = $web.GetWebsAndListsWithUniquePermissions(); #Get uniquely secured Lists pertaining to the current site $uniqueObjects|?{$_.WebId -eq $web.Id -and $_.Type -eq "List"}|%{ $listUrl = ($_.Url); $list = $web.GetList($listUrl); #Exclude internal system lists and check if it has unique permissions if($list.Hidden -ne $True){ Write-Host $list.Title -Foregroundcolor "Yellow"; $listTitle = $list.Title; #Check List Permissions if($list.HasUniqueRoleAssignments -eq $True){ $list.RoleAssignments|%{ $RoleDefinitionBindings=""; $_.RoleDefinitionBindings|%{ $RoleDefinitionBindings += $_.Name; } $MemberName = $_.Member.Name; $MemberLoginName = $_.Member.LoginName; $MemberType = $_.Member.GetType().Name; $JobTitle="NA"; $Department="NA"; if($MemberType -eq "SPUser"){ try{ $userinfo = $UserInfoList.GetItemById($_.ID); $JobTitle=$userinfo["JobTitle"]; $Department=$userinfo["Department"]; } catch{ } } $permission = New-Object -TypeName PSObject -Property $properties; $permission.SiteUrl =$siteUrl; $permission.SiteTitle = $siteTitle; $permission.ListTitle = $listTitle; $permission.ObjectType = $list.BaseType.ToString(); $permission.ObjectUrl = $listUrl; $permission.ParentGroup = "NA"; $permission.GroupOwner = "NA"; $permission.MemberType=$MemberType; $permission.MemberName = $MemberName; $permission.MemberLoginName = $MemberLoginName; $permission.JobTitle = $JobTitle; $permission.Department = $Department; $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ","; $Permissions +=$permission; } } if($list.BaseType -eq "DocumentLibrary"){ #Check All Folders $list.Folders|%{ $folderUrl = $_.Url; if($_.HasUniqueRoleAssignments -eq $True){ $_.RoleAssignments|%{ $RoleDefinitionBindings=""; #Get Permission Level against the Permission $_.RoleDefinitionBindings|%{ $RoleDefinitionBindings += $_.Name; } $MemberName = $_.Member.Name; $MemberLoginName = $_.Member.LoginName; $MemberType = $_.Member.GetType().Name; $JobTitle="NA"; $Department="NA"; if($MemberType -eq "SPUser"){ try{ $userinfo = $UserInfoList.GetItemById($_.ID); $JobTitle=$userinfo["JobTitle"]; $Department=$userinfo["Department"]; } catch{ } } $permission = New-Object -TypeName PSObject -Property $properties; $permission.SiteUrl =$siteUrl; $permission.SiteTitle = $siteTitle; $permission.ListTitle = $listTitle; $permission.ObjectType = $list.BaseType.ToString(); $permission.ObjectUrl = $folderUrl; $permission.MemberType = $MemberType; $permission.ParentGroup = "NA"; $permission.GroupOwner = "NA"; $permission.MemberName = $MemberName; $permission.MemberLoginName = $MemberLoginName; $permission.JobTitle = $JobTitle; $permission.Department = $Department; $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ","; $Permissions +=$permission; } } } #Check All Items $list.Items|%{ $fileUrl = $_.File.Url; $file=$_.File; if($_.HasUniqueRoleAssignments -eq $True){ $_.RoleAssignments|%{ $RoleDefinitionBindings=""; $_.RoleDefinitionBindings|%{ $RoleDefinitionBindings += $_.Name; } $MemberName = $_.Member.Name; $MemberLoginName = $_.Member.LoginName; $MemberType = $_.Member.GetType().Name; $JobTitle="NA"; $Department="NA"; if($MemberType -eq "SPUser"){ try{ $userinfo = $UserInfoList.GetItemById($_.ID); $JobTitle=$userinfo["JobTitle"]; $Department=$userinfo["Department"]; } catch{ } } $permission = New-Object -TypeName PSObject -Property $properties; $permission.SiteUrl =$siteUrl; $permission.SiteTitle = $siteTitle; $permission.ListTitle = $listTitle; $permission.ObjectType = $file.GetType().Name; $permission.ObjectUrl = $fileUrl; $permission.MemberType=$MemberType; $permission.MemberName = $MemberName; $permission.MemberLoginName = $MemberLoginName; $permission.JobTitle = $JobTitle; $permission.Department = $Department; $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ","; $Permissions +=$permission; } } } } } } if($_.IsRootWeb -ne $True){ $_.Dispose(); } } #Dispose root web $RootWeb.Dispose(); $Permissions|select SiteUrl,SiteTitle,ObjectType,ObjectUrl,ListTitle,MemberName,MemberLoginName,MemberType,JobTitle,Department,ParentGroup,GroupOwner,RoleDefinitionBindings|Export-CSV ("c:\"+$RootSiteTitle+"-Permissions.csv") -NoTypeInformation;
批量导入导出站点权限site permissions的更多相关文章
- 报表开发之批量导入导出excel
在日常使用报表过程中,会有这样一种情况,你将Excel表分发给各个员工,员工填完后,统一整理成多个Excel,你需要将这些数据,用报表的填报功能,提交录入到数据库中,这样一来可避免到服务器机房录数据的 ...
- PowerShell 批量导入/导出Active Directory
PowerShell 批量导入/导出Active Directory 近期由于公司要求,须要导入20个供应商.20个客户到AD域中,刚開始手动添�了2个供应商,2个客户.可是感觉费时费 ...
- [转]Office导入导出组件权限配置汇总
原文地址:Office导入导出组件权限配置汇总 具体配置方法如下: 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"中输入 ...
- SQL Server中bcp命令的用法以及数据批量导入导出
原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...
- 如何在IIS7或IIS7.5中导入导出站点及应用程序池.
为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows S ...
- 如何在IIS7或IIS7.5中导入导出站点及应用程序池. -摘自网络
为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows S ...
- 用poi框架进行批量导入导出实例
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能.我们这里使用poi对数据库中的数据进行批量导出,以及 ...
- asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL
效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...
- java实现文件批量导入导出实例(兼容xls,xlsx)
1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iRepo ...
随机推荐
- Ionic App中嵌入外部网页的问题
在app中不可避免的要引用第三方的页面,那么在Ionic中是如何实现呢? 1.设计引用外部页面的html框架页面,分3部分,表头有2个按钮,中间是引用的页面,底部隐藏分享相关按钮,具体页面如下: &l ...
- zookeepeer集群搭建
一.预备工作 1.zookeepeer需要安装JDK,至于版本,大家可以去官网查询一下.这里我安装的是JDK8. 2.需要开放zookeepeer用到的端口,默认端口2181.2888.3888,至于 ...
- copy constructor
copy constructor也分为trivial和nontrivial两种 如果class展现出bitwise copy semantics(按位拷贝语义),则不会构造出 copy constru ...
- (代码篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝
上一篇讲解了基础文件IO的理论发展,这里结合java看看各项理论的具体实现. 传统IO-intsmaze 传统文件IO操作的基础代码如下: FileInputStream in = new FileI ...
- 2018年高教社杯全国大学生数学建模竞赛A题解题思路
题目 先贴一下A的题目吧 A题 高温作业专用服装设计 在高温环境下工作时,人们需要穿着专用服装以避免灼伤.专用服装通常由三层织物材料构成,记为I.II.III层,其中I层与外界环境接触,III层与 ...
- Puppet常识梳理
Puppet简单介绍 1)puppet是一种Linux/Unix平台下的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统 ...
- PAT甲题题解-1130. Infix Expression (25)-中序遍历
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789828.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- 【CV】ICCV2015_Unsupervised Visual Representation Learning by Context Prediction
Unsupervised Visual Representation Learning by Context Prediction Note here: it's a learning note on ...
- Java实验二
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1351 姓名:黄君如 学号:20135117 成绩: 指导教师:娄 ...
- 《Linux内核设计与实现》第一二章笔记
第一章 linux内核简介 每个处理器在任何时间点上的活动必然概括为下列三者: 运行于用户空间,执行用户进程 运行于内核空间,处于进程上下文,代表某个特定的进程执行 运行于内核空间,处于中断上下文,与 ...