批量导入站点权限

  1.  
  1. cls
  2. $Web = Get-SPWeb "http://16.178.115.14:91/"
  3. Get-Content c:\export\account.txt | ForEach-Object {
  4. Write-Host $_
  5.  
  6. $account = $web.EnsureUser($_.Split(',')[0])
  7. $role = $web.RoleDefinitions[$_.Split(',')[1]]
  8.  
  9. $assignment = New-Object Microsoft.SharePoint.SPRoleAssignment($account)
  10. $assignment.RoleDefinitionBindings.Add($role)
  11.  
  12. $web.RoleAssignments.Add($assignment)
  13. }

-----------

mitpalm4\xuting,Full Control
mitpalm4\lily,Read

批量导出站点权限

  1. cls
  2. if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
  3.  
  4. Add-PSSnapin "Microsoft.SharePoint.PowerShell"
  5.  
  6. }
  7.  
  8. $properties=@{SiteUrl='';SiteTitle='';ListTitle='';ObjectType='';ObjectUrl='';ParentGroup='';GroupOwner='';MemberType='';MemberName='';MemberLoginName='';JobTitle='';Department='';RoleDefinitionBindings='';};
  9.  
  10. $Permissions=@();
  11.  
  12. $UserInfoList="";
  13.  
  14. $RootWeb="";
  15.  
  16. $SiteCollectionUrl = Read-Host "Enter a Site Collection Url";
  17.  
  18. Get-SPSite $SiteCollectionUrl|Get-SPWeb -limit ALL|%{
  19.  
  20. $web = $_;
  21.  
  22. #Root Web of the Site Collection
  23.  
  24. if($web.IsRootWeb -eq $True){
  25.  
  26. $RootSiteTitle = $web.Title;
  27.  
  28. $RootWeb = $web;
  29.  
  30. $UserInfoList = $RootWeb.GetList([string]::concat($web.Url,"/_catalogs/users"));
  31.  
  32. }
  33.  
  34. $siteUrl = $web.Url;
  35.  
  36. $siteRelativeUrl = $web.ServerRelativeUrl;
  37.  
  38. Write-Host $siteUrl -Foregroundcolor "Red";
  39.  
  40. $siteTitle = $web.Title;
  41.  
  42. #Get Site Level Permissions if it's unique
  43.  
  44. if($web.HasUniqueRoleAssignments -eq $True){
  45.  
  46. $web.RoleAssignments|%{
  47.  
  48. $RoleDefinitionBindings=@();
  49.  
  50. $_.RoleDefinitionBindings|%{
  51.  
  52. $RoleDefinitionBindings += $_.Name;
  53.  
  54. }
  55.  
  56. $MemberName = $_.Member.Name;
  57.  
  58. $MemberLoginName = $_.Member.LoginName;
  59.  
  60. $MemberType = $_.Member.GetType().Name;
  61.  
  62. $GroupOwner = $_.Member.Owner.Name;
  63.  
  64. if($MemberType -eq "SPGroup"){
  65.  
  66. $JobTitle="NA";
  67.  
  68. $Department="NA";
  69.  
  70. $permission = New-Object -TypeName PSObject -Property $properties;
  71.  
  72. $permission.SiteUrl =$siteUrl;
  73.  
  74. $permission.SiteTitle = $siteTitle;
  75.  
  76. $permission.ListTitle = "NA";
  77.  
  78. $permission.ObjectType = "Site";
  79.  
  80. $permission.ObjectUrl = $siteRelativeUrl;
  81.  
  82. $permission.MemberType = $MemberType;
  83.  
  84. $permission.ParentGroup = $MemberName;
  85.  
  86. $permission.GroupOwner = $GroupOwner;
  87.  
  88. $permission.MemberName = $MemberName;
  89.  
  90. $permission.MemberLoginName = $MemberLoginName;
  91.  
  92. $permission.JobTitle = $JobTitle;
  93.  
  94. $permission.Department = $Department;
  95.  
  96. $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ",";
  97.  
  98. $Permissions +=$permission;
  99.  
  100. #Expand Groups
  101.  
  102. $web.Groups[$MemberName].Users|%{
  103.  
  104. $JobTitle="NA";
  105.  
  106. $Department="NA";
  107.  
  108. try{
  109.  
  110. $userinfo = $UserInfoList.GetItemById($_.ID);
  111.  
  112. $JobTitle=$userinfo["JobTitle"];
  113.  
  114. $Department=$userinfo["Department"];
  115.  
  116. }
  117.  
  118. catch{
  119.  
  120. }
  121.  
  122. $permission = New-Object -TypeName PSObject -Property $properties;
  123.  
  124. $permission.SiteUrl =$siteUrl;
  125.  
  126. $permission.SiteTitle = $siteTitle;
  127.  
  128. $permission.ListTitle = "NA";
  129.  
  130. $permission.ObjectType = "Site";
  131.  
  132. $permission.ObjectUrl = $siteRelativeUrl;
  133.  
  134. $permission.MemberType = "SPGroupMember";
  135.  
  136. $permission.ParentGroup = $MemberName;
  137.  
  138. $permission.GroupOwner = $GroupOwner;
  139.  
  140. $permission.MemberName = $_.DisplayName;
  141.  
  142. $permission.MemberLoginName = $_.UserLogin;
  143.  
  144. $permission.JobTitle = $JobTitle;
  145.  
  146. $permission.Department = $Department;
  147.  
  148. $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ",";
  149.  
  150. $Permissions +=$permission;
  151.  
  152. }
  153.  
  154. }
  155.  
  156. elseif($MemberType -eq "SPUser"){
  157.  
  158. $JobTitle="NA";
  159.  
  160. $Department="NA";
  161.  
  162. try{
  163.  
  164. $userinfo = $UserInfoList.GetItemById($_.ID);
  165.  
  166. $JobTitle=$userinfo["JobTitle"];
  167.  
  168. $Department=$userinfo["Department"];
  169.  
  170. }
  171.  
  172. catch{
  173.  
  174. }
  175.  
  176. $permission = New-Object -TypeName PSObject -Property $properties;
  177.  
  178. $permission.SiteUrl =$siteUrl;
  179.  
  180. $permission.SiteTitle = $siteTitle;
  181.  
  182. $permission.ListTitle = "NA";
  183.  
  184. $permission.ObjectType = "Site";
  185.  
  186. $permission.MemberType = $MemberType;
  187.  
  188. $permission.ObjectUrl = $siteRelativeUrl;
  189.  
  190. $permission.ParentGroup = "NA";
  191.  
  192. $permission.GroupOwner = "NA";
  193.  
  194. $permission.MemberName = $MemberName;
  195.  
  196. $permission.MemberLoginName = $MemberLoginName;
  197.  
  198. $permission.JobTitle = $JobTitle;
  199.  
  200. $permission.Department = $Department;
  201.  
  202. $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ",";
  203.  
  204. $Permissions +=$permission;
  205.  
  206. }
  207.  
  208. }
  209.  
  210. }
  211.  
  212. #Get all Uniquely secured objects
  213.  
  214. $uniqueObjects = $web.GetWebsAndListsWithUniquePermissions();
  215.  
  216. #Get uniquely secured Lists pertaining to the current site
  217.  
  218. $uniqueObjects|?{$_.WebId -eq $web.Id -and $_.Type -eq "List"}|%{
  219.  
  220. $listUrl = ($_.Url);
  221.  
  222. $list = $web.GetList($listUrl);
  223.  
  224. #Exclude internal system lists and check if it has unique permissions
  225.  
  226. if($list.Hidden -ne $True){
  227.  
  228. Write-Host $list.Title -Foregroundcolor "Yellow";
  229.  
  230. $listTitle = $list.Title;
  231.  
  232. #Check List Permissions
  233.  
  234. if($list.HasUniqueRoleAssignments -eq $True){
  235.  
  236. $list.RoleAssignments|%{
  237.  
  238. $RoleDefinitionBindings="";
  239.  
  240. $_.RoleDefinitionBindings|%{
  241.  
  242. $RoleDefinitionBindings += $_.Name;
  243.  
  244. }
  245.  
  246. $MemberName = $_.Member.Name;
  247.  
  248. $MemberLoginName = $_.Member.LoginName;
  249.  
  250. $MemberType = $_.Member.GetType().Name;
  251.  
  252. $JobTitle="NA";
  253.  
  254. $Department="NA";
  255.  
  256. if($MemberType -eq "SPUser"){
  257.  
  258. try{
  259.  
  260. $userinfo = $UserInfoList.GetItemById($_.ID);
  261.  
  262. $JobTitle=$userinfo["JobTitle"];
  263.  
  264. $Department=$userinfo["Department"];
  265.  
  266. }
  267.  
  268. catch{
  269.  
  270. }
  271.  
  272. }
  273.  
  274. $permission = New-Object -TypeName PSObject -Property $properties;
  275.  
  276. $permission.SiteUrl =$siteUrl;
  277.  
  278. $permission.SiteTitle = $siteTitle;
  279.  
  280. $permission.ListTitle = $listTitle;
  281.  
  282. $permission.ObjectType = $list.BaseType.ToString();
  283.  
  284. $permission.ObjectUrl = $listUrl;
  285.  
  286. $permission.ParentGroup = "NA";
  287.  
  288. $permission.GroupOwner = "NA";
  289.  
  290. $permission.MemberType=$MemberType;
  291.  
  292. $permission.MemberName = $MemberName;
  293.  
  294. $permission.MemberLoginName = $MemberLoginName;
  295.  
  296. $permission.JobTitle = $JobTitle;
  297.  
  298. $permission.Department = $Department;
  299.  
  300. $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ",";
  301.  
  302. $Permissions +=$permission;
  303.  
  304. }
  305.  
  306. }
  307.  
  308. if($list.BaseType -eq "DocumentLibrary"){
  309.  
  310. #Check All Folders
  311.  
  312. $list.Folders|%{
  313.  
  314. $folderUrl = $_.Url;
  315.  
  316. if($_.HasUniqueRoleAssignments -eq $True){
  317.  
  318. $_.RoleAssignments|%{
  319.  
  320. $RoleDefinitionBindings="";
  321.  
  322. #Get Permission Level against the Permission
  323.  
  324. $_.RoleDefinitionBindings|%{
  325.  
  326. $RoleDefinitionBindings += $_.Name;
  327.  
  328. }
  329.  
  330. $MemberName = $_.Member.Name;
  331.  
  332. $MemberLoginName = $_.Member.LoginName;
  333.  
  334. $MemberType = $_.Member.GetType().Name;
  335.  
  336. $JobTitle="NA";
  337.  
  338. $Department="NA";
  339.  
  340. if($MemberType -eq "SPUser"){
  341.  
  342. try{
  343.  
  344. $userinfo = $UserInfoList.GetItemById($_.ID);
  345.  
  346. $JobTitle=$userinfo["JobTitle"];
  347.  
  348. $Department=$userinfo["Department"];
  349.  
  350. }
  351.  
  352. catch{
  353.  
  354. }
  355.  
  356. }
  357.  
  358. $permission = New-Object -TypeName PSObject -Property $properties;
  359.  
  360. $permission.SiteUrl =$siteUrl;
  361.  
  362. $permission.SiteTitle = $siteTitle;
  363.  
  364. $permission.ListTitle = $listTitle;
  365.  
  366. $permission.ObjectType = $list.BaseType.ToString();
  367.  
  368. $permission.ObjectUrl = $folderUrl;
  369.  
  370. $permission.MemberType = $MemberType;
  371.  
  372. $permission.ParentGroup = "NA";
  373.  
  374. $permission.GroupOwner = "NA";
  375.  
  376. $permission.MemberName = $MemberName;
  377.  
  378. $permission.MemberLoginName = $MemberLoginName;
  379.  
  380. $permission.JobTitle = $JobTitle;
  381.  
  382. $permission.Department = $Department;
  383.  
  384. $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ",";
  385.  
  386. $Permissions +=$permission;
  387.  
  388. }
  389.  
  390. }
  391.  
  392. }
  393.  
  394. #Check All Items
  395.  
  396. $list.Items|%{
  397.  
  398. $fileUrl = $_.File.Url;
  399.  
  400. $file=$_.File;
  401.  
  402. if($_.HasUniqueRoleAssignments -eq $True){
  403.  
  404. $_.RoleAssignments|%{
  405.  
  406. $RoleDefinitionBindings="";
  407.  
  408. $_.RoleDefinitionBindings|%{
  409.  
  410. $RoleDefinitionBindings += $_.Name;
  411.  
  412. }
  413.  
  414. $MemberName = $_.Member.Name;
  415.  
  416. $MemberLoginName = $_.Member.LoginName;
  417.  
  418. $MemberType = $_.Member.GetType().Name;
  419.  
  420. $JobTitle="NA";
  421.  
  422. $Department="NA";
  423.  
  424. if($MemberType -eq "SPUser"){
  425.  
  426. try{
  427.  
  428. $userinfo = $UserInfoList.GetItemById($_.ID);
  429.  
  430. $JobTitle=$userinfo["JobTitle"];
  431.  
  432. $Department=$userinfo["Department"];
  433.  
  434. }
  435.  
  436. catch{
  437.  
  438. }
  439.  
  440. }
  441.  
  442. $permission = New-Object -TypeName PSObject -Property $properties;
  443.  
  444. $permission.SiteUrl =$siteUrl;
  445.  
  446. $permission.SiteTitle = $siteTitle;
  447.  
  448. $permission.ListTitle = $listTitle;
  449.  
  450. $permission.ObjectType = $file.GetType().Name;
  451.  
  452. $permission.ObjectUrl = $fileUrl;
  453.  
  454. $permission.MemberType=$MemberType;
  455.  
  456. $permission.MemberName = $MemberName;
  457.  
  458. $permission.MemberLoginName = $MemberLoginName;
  459.  
  460. $permission.JobTitle = $JobTitle;
  461.  
  462. $permission.Department = $Department;
  463.  
  464. $permission.RoleDefinitionBindings = $RoleDefinitionBindings -join ",";
  465.  
  466. $Permissions +=$permission;
  467.  
  468. }
  469.  
  470. }
  471.  
  472. }
  473.  
  474. }
  475.  
  476. }
  477.  
  478. }
  479.  
  480. if($_.IsRootWeb -ne $True){
  481.  
  482. $_.Dispose();
  483.  
  484. }
  485.  
  486. }
  487.  
  488. #Dispose root web
  489.  
  490. $RootWeb.Dispose();
  491.  
  492. $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. 分布式理论——quorum原理

    编者按:本篇文章是网上一些文章的合集,并不是原创,谢谢各位的分享. 一.基于Quorum投票的冗余控制算法 Quorom 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要 ...

  2. 2018 Multi-University Training Contest 1 部分简单题解析

    Preface ACM系列赛第一站,没有进前200还是很伤的. 主要是T2当时没写出来就GG了,后来看了下其实不是很难. 题目按照比赛时我们A的顺序讲,其实我都是被陈潇然大佬和ZWC带飞的. T1 M ...

  3. CYJian的水题大赛

    实在没忍住就去打比赛了然后一耗就是一天 最后Rank19还是挺好的(要不是乐多赛不然炸飞),这是唯一一套在Luogu上号称水题大赛的而实际上真的是水题大赛的比赛 好了我们开始看题 T1 八百标兵奔北坡 ...

  4. Caffe源码中math_functions文件分析

    Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下math_functions文件. 1.      include文件: ...

  5. BodeAbp概述

    BodeAbp框架基于github开源框架ASP.NET Boilerplate,abp项目地址:https://github.com/aspnetboilerplate/aspnetboilerpl ...

  6. CentOS搭建NAT和DHCP服务,实现共享上网

    什么是NAT? NAT(Network address translation)即网络地址转换,作为一种过渡解决手段,可以用来减少对全球合法IP地址的需求.简单的说,NAT就是在内部专用网络中使用内部 ...

  7. Flutter - 本地化语言

    Flutter有很多本地化的packages使用,我现在用的是 flutter_i18n 项目主页:https://pub.dartlang.org/packages/flutter_i18n 1.安 ...

  8. 浅谈nornalize.css(含源码)

    Normalize.css是一种CSS reset的替代方案.经过@necolas和@jon_neal花了几百个小时来努力研究不同浏览器的默认样式的差异,这个项目终于变成了现在这样. 我们创造norm ...

  9. linux下用户操作记录审计环境的部署记录

    通常,我们运维管理人员需要知道一台服务器上有哪些用户登录过,在服务器上执行了哪些命令,干了哪些事情,这就要求记录服务器上所用登录用户的操作信息,这对于安全维护来说很有必要.废话不多说了,下面直接记录做 ...

  10. 最近新明白的SQL小知识

    1.partition by和order by 先看三个小需求: ①查询出各个类编号的书本的数量. select count (类编号) as 数量, 类编号 from Books group by ...