今天我遇到了一个奇怪的情况,在sharepoint 2010中用户配置文件同步,可能你们之前已经面对过它了。请帮我解决这个问题。请在之前找到问题说明。
我的AD中有一个名为 x.y (示例)的用户,它使用用户配置文件同步同步到我们的sharepoint,以便在用户信息列表中提供相同的详细信息。所以我可以在我的项目中使用的人物采集器中看到用户。后来用户说他的名字改为 yx ,所以我们的客户做的是,他们已经从AD中删除了用户并添加了一个带有 yx 的新条目,已经再次完成了同步服务,所以现在我可以在我的人员选择器中看到 xy和yx 。发生这种情况是因为人员选择器将首先查看用户信息列表和AD。但我的要求是,我不想在人员选择器中显示已删除的AD用户。我该怎么做?现在客户端说他有一些从AD中删除但仍然在人员选择器中显示的用户列表。为什么这种同步没有正确发生?请告诉我们有没有任何自动化机制来做到这一点。
我尝试过的解决方案
通过提供需要删除的用户名csv,使用powershell命令从用户信息列表中删除用户列表。请在下面找到我使用的powershell命令
PARAM ( [参数(强制= $ true)] [ValidateScript({Test-Path $ _ -Include“* .csv”})] [字符串] $ CSVPath )
#此脚本将删除CSV中指定的用户 。
$CSVFile = Import-CSV $CSVPath
Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue
#获取所有网站集
$Sites = Get-SPSite -Limit All
$AllSites = @()
foreach($Line in $CSVFile)
{
foreach($Site in $Sites)
{
#获取网站集的rootweb
$RootWeb = $Site.RootWeb
If([bool](Get-SPUser $Line.Username -Web $RootWeb -EA SilentlyContinue) -eq $True)
{
#从用户信息列表中删除用户
Remove-SPUser -Identity $Line.username -Web $RootWeb -Confirm:$False
$AllSites += $RootWeb.Url
}
}
if(!($AllSites).count -eq 0)
{
#Give对已删除用户的反馈
Write-Host “Removed user $($Line.username) from:” -Fore “Magenta”
foreach($S in $AllSites){Write-Host “- $S”}
Write-Host “”
$AllSites = @()
}
}
除了这两种方法之外,请告诉我是否有任何自动化机制。
谢谢&问候, Febin