批量导入站点权限

 
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. python中和生成器协程相关的yield from之最详最强解释,一看就懂(四)

    如果认真读过上文的朋友,应该已经明白了yield from实现的底层generator到caller的上传数据通道是什么了.本文重点讲yield from所实现的caller到coroutine的向下 ...

  2. QT 遇到的问题

    遇到的问题: 1:在QT中使用opengl,发现一个很神奇的问题,个人感觉是qt的bug. 问题详情:在我添加了一个成员变量之后,使用opengl编写的窗口没有任何输出了,只有一个背景. 但是删除那个 ...

  3. xmlSpy套件(Altova MissionKit 2016)的Ollydbg调试过程及破解

    最近工作需要用到XML处理软件,网上找到Altova MissionKit 2016( 包含了XmlSpy.MapForce.StyleVision.UModel.DatabaseSpy等工具),用了 ...

  4. Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)

    之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...

  5. Centos6.9下RabbitMQ集群部署记录

    之前简单介绍了CentOS下单机部署RabbltMQ环境的操作记录,下面详细说下RabbitMQ集群知识,RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言, ...

  6. 【Beta阶段】第六次Scrum Meeting!

    每日任务内容: 本次会议为第六次Scrum Meeting会议~ 由于本次会议项目经理召开时间为9:30,在公寓1楼会客室召开,召开时长约30分钟,探讨了本次取得的重大突破后需要继续开展的工作. 队员 ...

  7. 《Linux内核设计与实现》读书笔记 1&2

    第一章    Linux内核简介 1.2追寻Linus足迹:linux简介 Linus开发.Linux是类Unix系统.Linux内核也是自由软件. 1.3操作系统和内核简介 操作系统:在整个系统中负 ...

  8. LINUX实践之模块

    模块实践 --关于模块代码部分 ---首先是.c代码: 一定会用到的函数有这几个:module_init().module_exit().MODULE_LICENSE() 会用到的头文件:module ...

  9. SQL Server 递归查询上级或下级组织数据(上下级数据通用查询语法)

    查询上级组织数据: WITH OCTE AS ( AS LVL FROM IOV_Users U LEFT JOIN IOV_Organization O ON U.OrgId=O.ID UNION ...

  10. python 函数及变量作用域及装饰器decorator @详解

    一.函数及变量的作用   在python程序中,函数都会创建一个新的作用域,又称为命名空间,当函数遇到变量时,Python就会到该函数的命名空间来寻找变量,因为Python一切都是对象,而在命名空间中 ...