批量导入站点权限

 
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的更多相关文章

  1. 报表开发之批量导入导出excel

    在日常使用报表过程中,会有这样一种情况,你将Excel表分发给各个员工,员工填完后,统一整理成多个Excel,你需要将这些数据,用报表的填报功能,提交录入到数据库中,这样一来可避免到服务器机房录数据的 ...

  2. PowerShell 批量导入/导出Active Directory

    PowerShell 批量导入/导出Active Directory         近期由于公司要求,须要导入20个供应商.20个客户到AD域中,刚開始手动添�了2个供应商,2个客户.可是感觉费时费 ...

  3. [转]Office导入导出组件权限配置汇总

    原文地址:Office导入导出组件权限配置汇总 具体配置方法如下:  1:在服务器上安装office的Excel软件.  2:在"开始"->"运行"中输入 ...

  4. SQL Server中bcp命令的用法以及数据批量导入导出

    原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...

  5. 如何在IIS7或IIS7.5中导入导出站点及应用程序池.

    为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows S ...

  6. 如何在IIS7或IIS7.5中导入导出站点及应用程序池. -摘自网络

    为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows S ...

  7. 用poi框架进行批量导入导出实例

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能.我们这里使用poi对数据库中的数据进行批量导出,以及 ...

  8. asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL

    效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...

  9. java实现文件批量导入导出实例(兼容xls,xlsx)

    1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iRepo ...

随机推荐

  1. c# 获取文件本身的哈希值

    1. 哈希值是什么 我个人认为,哈希值是一个统称,也就是经过加密算法后得出的长度较短.位数固定的输出序列即散列值,这个哈希值是一个凭证,一个数字签名之类的,唯一对应你加密之前的东西,这都是我自个儿觉得 ...

  2. [UWP 自定义控件]了解模板化控件(4):TemplatePart

    1. TemplatePart TemplatePart(部件)是指ControlTemplate中的命名元素.控件逻辑预期这些部分存在于ControlTemplate中,并且使用protected ...

  3. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十四节--后台工作者HangFire与ABP框架Abp.Hangfire及扩展

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于 ...

  4. 一文让你完全弄懂Stegosaurus

    国内关于 Stegosaurus 的介绍少之又少,一般只是单纯的工具使用的讲解之类的,并且本人在学习过程中也是遇到了很多的问题,基于此种情况下写下此文,也是为我逝去的青春时光留个念想吧~ Stegos ...

  5. Haproxy基础知识 -运维小结

    开源软件负载均衡器 现在常用的三大开源软件负载均衡器分别是Nginx.LVS.Haproxy. 在之前的文章中已经对比了这三个负载均衡软件, 下面根据自己的理解和使用经验, 再简单说下这三个负载均衡软 ...

  6. part 1

    注意:本次源码分析选择2.0.3(因为不支持IE6.7.8,就少了很多兼容的hack的写法,对了解jQuery的实现原理有很大的帮助) 1.jQuery有不同的版本,从2.x版本便不再支持IE6.7. ...

  7. OneZero第一次随感

    >本人基础薄弱,有幸加入这个团队,甚感欣慰.这是本人第一次尝试写博客,说实话,胆怯.因为能力有限,怕技能匮乏,说不好.但是我知道既然加入这个团队,就要为团队负责.万事开头难,过程也挺难(就我个人 ...

  8. Scrum Meeting NO.7

    Scrum Meeting No.7 1.会议内容 经过老师提醒,我们认识到,应尽快把主要功能实现,其他的细枝末节应在这之后慢慢添加.当今最重要的任务是和online组和数据处理组实现数据共享. 此外 ...

  9. Scrum Meeting 8

                第八次会议 No_00:工作情况 No_01:任务说明 待完成 已完成 No_10:燃尽图 No_11:照片记录 待更新 No_100:代码/文档签入记录 No_101:出席表 ...

  10. html5制作导航条

    (1)background-repeat:no-repeat;图片不平铺 (2)使用<ul>和<li>便签,代码简介有序.易于编排. (3)在引入外部css文件时,<li ...