批量导入导出站点权限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 ...
随机推荐
- 分布式理论——quorum原理
编者按:本篇文章是网上一些文章的合集,并不是原创,谢谢各位的分享. 一.基于Quorum投票的冗余控制算法 Quorom 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要 ...
- 2018 Multi-University Training Contest 1 部分简单题解析
Preface ACM系列赛第一站,没有进前200还是很伤的. 主要是T2当时没写出来就GG了,后来看了下其实不是很难. 题目按照比赛时我们A的顺序讲,其实我都是被陈潇然大佬和ZWC带飞的. T1 M ...
- CYJian的水题大赛
实在没忍住就去打比赛了然后一耗就是一天 最后Rank19还是挺好的(要不是乐多赛不然炸飞),这是唯一一套在Luogu上号称水题大赛的而实际上真的是水题大赛的比赛 好了我们开始看题 T1 八百标兵奔北坡 ...
- Caffe源码中math_functions文件分析
Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下math_functions文件. 1. include文件: ...
- BodeAbp概述
BodeAbp框架基于github开源框架ASP.NET Boilerplate,abp项目地址:https://github.com/aspnetboilerplate/aspnetboilerpl ...
- CentOS搭建NAT和DHCP服务,实现共享上网
什么是NAT? NAT(Network address translation)即网络地址转换,作为一种过渡解决手段,可以用来减少对全球合法IP地址的需求.简单的说,NAT就是在内部专用网络中使用内部 ...
- Flutter - 本地化语言
Flutter有很多本地化的packages使用,我现在用的是 flutter_i18n 项目主页:https://pub.dartlang.org/packages/flutter_i18n 1.安 ...
- 浅谈nornalize.css(含源码)
Normalize.css是一种CSS reset的替代方案.经过@necolas和@jon_neal花了几百个小时来努力研究不同浏览器的默认样式的差异,这个项目终于变成了现在这样. 我们创造norm ...
- linux下用户操作记录审计环境的部署记录
通常,我们运维管理人员需要知道一台服务器上有哪些用户登录过,在服务器上执行了哪些命令,干了哪些事情,这就要求记录服务器上所用登录用户的操作信息,这对于安全维护来说很有必要.废话不多说了,下面直接记录做 ...
- 最近新明白的SQL小知识
1.partition by和order by 先看三个小需求: ①查询出各个类编号的书本的数量. select count (类编号) as 数量, 类编号 from Books group by ...