首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPUser等价运算符

SPUser等价运算符
EN

Stack Overflow用户
提问于 2015-01-07 00:22:06
回答 1查看 141关注 0票数 1

在PowerShell中,是否有运算符来确定两个SPUser对象之间的等价性?如果有,又是什么?

我的实例循环访问站点列表,将某个站点属性中的"domain/John Smith“替换为"domain/Jane Doe”。它拉取该属性中当前的域,如果它与SPUser“域/John Smith”相同,则该属性将被SPUser“域/无名氏”替换。

在本例中,只比较UserLogin或DisplayName属性很容易,但我正在寻找一种更复杂的方法来确定两个用户之间的等价性。

EN

回答 1

Stack Overflow用户

发布于 2015-02-03 16:16:18

这似乎是一个有点晚的答案,但为了帮助遇到这个问题的人,我也许可以给出一些我必须做的关于寻找用户和比较某些属性的想法。我在与SharePoint相关的查询中使用了这个示例,但显然您可以将确切的原则应用于其他领域。

我为我的SPWeb获取了一个SiteUsers集合,然后在foreach中遍历所有用户并执行检查:如果我的用户的电子邮件地址存在于SPUsers集合中,则将该电子邮件地址添加到SharePoint列表中。以下是我进行比较的方式:

代码语言:javascript
复制
$item["Line Supervisor"] = $spweb.SiteUsers | ? { $_.Email -eq ($csvrow.LineManagerMail + "@domain.com")}

虽然这不能直接回答您的问题,但它可能会让您了解如何在PowerShell中使用lambda表达式来帮助您快速检查数据,而不仅仅是用户。如果您需要的话,我还可以想出其他一些类似的例子。

下面是我最近在这个例子中使用的一小段代码:

从CSV文件向列表中添加新用户

代码语言:javascript
复制
foreach ($csvrow in $icsv)
{
    $rowCellNumber = $csvrow.CellNumber;
    Write-Host($rowCellNumber);
    $item = $users | ? {$_["Cell Number"] -eq $rowCellNumber}

    If($item -eq $null)
    {
        $item = $linstance.AddItem();
        Write-Host('New User Found - Creating ' + $rowCellNumber + '...');
        $newitems = $newitems + 1;   #this is only a flag to count new items
    }
    Else
    {
        Write-Host('Existing User Found - Updating ' + $rowCellNumber + '...');
        $updateditems = $updateditems + 1;   #this is only a flag to count updated items
    }
#set spitem field values
    $item["Title"] = $csvrow.FullName
    $item["Line Manager"] = $spweb.SiteUsers | ? { $_.Email -eq ($csvrow.LineManagerMail + "@domain.com")}
    
    $item.Update()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27802785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档