用于将通讯组成员与SharePoint组同步的PowerShell脚本
SharePoint环境中的Im,其中:用于将通讯组成员与SharePoint组同步的PowerShell脚本,powershell,activerecord,sharepoint-2013,Powershell,Activerecord,Sharepoint 2013,SharePoint环境中的Im,其中: 正在使用通讯组列表而不是安全列表 无法切换到安全列表 通讯组列表是嵌套的 没有用户配置文件同步 因此,为了同步我的新SharePoint组“something”,我考虑定期运行PowerShell脚本,以分层方式获取所有成员并将其放入SharePoint组,包括检查。不幸的是,我不能安装广告加载项,所以我安装了任务广告加载项 更新:我注意到直接同步花了太长时间。因此,我决定拆分解决方案:第一个AD脚本输出所有嵌套的通讯组(Get QADGroupMe
- 正在使用通讯组列表而不是安全列表
- 无法切换到安全列表
- 通讯组列表是嵌套的
- 没有用户配置文件同步
<#
.SYNOPSIS
Syncs All Users in AD distribution Group To SharePoint group:
- Adds new Users
- Updates display name, email when changed
- Deleted Users no longer present
#>
# --------------------------------------------------------
# Variables to Change / Set:
# --------------------------------------------------------
$site = "http://abc-def-ghi:7777"
$SPgroup = "MYCOOLSPGROUP"
$ADgroup = "MYADGROUP"
# --------------------------------------------------------
# Add-SSuser : adds a user to Sharepoint Group
# --------------------------------------------------------
function Add-SSUser {
Param( [string]$account,
[string]$displayname,
[string]$email,
[string]$sitecollectionurl,
[string]$group,
[string]$date)
Get-SPWeb -Identity $sitecollectionurl | foreach-object {
$identityClaimWindowsNTAccount = "i:0#.w|$account"
[Microsoft.SharePoint.SPUser] $ssUser =
$_.EnsureUser($identityClaimWindowsNTAccount)
$_.Groups.GetByName($group).AddUser($ssUser)
$_.Groups.GetByName($group).Update()
Set-SPUser -Identity $ssUser -Web $_.Url -Group $group
# Update properties
$ssUser.Email = $email
$ssUser.Name = $displayname
$ssUser.Notes = "[[$date]]"
$ssUser.Update()
#Write-Host $ssUser.Xml
}
}
# --------------------------------------------------------
#要更改/设置的变量:
# --------------------------------------------------------
$site=”http://abc-def-ghi:7777"
$SPgroup=“mycolspgroup”
$ADgroup=“MYADGROUP”
# --------------------------------------------------------
#添加用户:将用户添加到Sharepoint组
# --------------------------------------------------------
函数加法器{
参数([string]$account,
[字符串]$displayname,
[字符串]$email,
[字符串]$sitecollectionurl,
[字符串]$group,
[字符串]$date)
获取SPWeb-Identity$sitecollectionurl | foreach对象{
$identityClaimWindowsNTAccount=“i:0#.w |$account”
[Microsoft.SharePoint.SPUser]$ssUser=
$\u.EnsureUser($identityClaimWindowsNTAccount)
$\.Groups.GetByName($group).AddUser($ssUser)
$\.Groups.GetByName($group.Update())
设置SPUser-Identity$ssUser-Web$\ Url-Group$Group
#更新属性
$ssUser.Email=$Email
$ssUser.Name=$displayname
$ssUser.Notes=“[[$date]]”
$ssUser.Update()
#写入主机$ssUser.Xml
}
}
您现在的代码有什么问题?我看到的唯一奇怪的是一些拼写错误,我不知道你在哪里声明了变量,所以这可能只是表面上的<代码>$\u spdisplayname和上次修改日期@Matt Well。。。这个脚本可能有很多问题,我会更新我的帖子,提一下我的一些疑问