小编Yur*_*oor的帖子

从Get-AdUser的结果设置AD用户的UPN

我在AD中有一些用户设置了UPN地址User@this.org.我想更改这些用户,以便他们的UPN看起来像那样User@that.com.

我写了一个PS专线给我这样的用户:

Get-ADUser -LDAPFilter "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(userPrincipalName=*@this.org))" -SearchBase "OU=this,DC=that"  | Select SamAccountName
Run Code Online (Sandbox Code Playgroud)

但是如何更新这些用户.我知道Set-AdUser命令,但我无法弄清楚如何将结果Get-Aduser输入其中.

powershell active-directory

1
推荐指数
1
解决办法
878
查看次数

在调用dll的方法时无法解构动态对象

假设我有一个像这样的方法的dll:

public (string, List<string>) MyMethod(NameValueCollection Settings, MyClass1 params)
{
 //do something
 return (result, errorList);
}
Run Code Online (Sandbox Code Playgroud)

现在从我的主项目中我会这样称呼它:

var shipmentNumber = string.Empty;
var errorList = new List<string>;
var DLL = Assembly.LoadFile($@"{AppDomain.CurrentDomain.BaseDirectory}{appSettings[$"{parameters.TestCase}_DLL_Name"]}");
Type classType;
classType = DLL.GetType($"{appSettings[$"{parameters.TestCase}_DLL_Name"].Replace(".dll", "")}.MyService");
dynamic d = Activator.CreateInstance(classType);
(result, errorList)= d.MyMethod(appSettings, params);
Run Code Online (Sandbox Code Playgroud)

但是这会在这里显示的最后一行给出错误Cannot deconstruct dynamic objects.有没有办法可以在这里正确地返回元组?

c# dll tuples dynamic

1
推荐指数
1
解决办法
379
查看次数

Foreach循环正确-使用.Any()检查返回错误

我有一个列表Guid,其中保留Guid了我的项目列表中的所有重复项:

IEnumerable<Guid> duplicateExists = ListOfMyItems
  .GroupBy(x => x.ID)
  .Where(group => group.Count() > 1)
  .Select(group => group.Key);
Run Code Online (Sandbox Code Playgroud)

现在,我要检查是否存在重复,如果存在,请从中删除它的最后一次出现ListOfMyItemsDeleteItemFromOrder只是从数据库中删除一行。

这有效:

 foreach (var item in duplicateExists)
 {                        
     _ = ListOfMyItems.Remove(ListOfMyItems.Last(x => x.ID == item));
     MyLogic.DeleteItemFromOrder(Bill.ID, item);                      
     return;
 }
Run Code Online (Sandbox Code Playgroud)

虽然这将输入条件if,然后失败DeleteItemFromOrder,但告诉我duplicateExists - sequence contains no elements

 if(duplicateExists.Any())
 {                        
     _ = ListOfMyItems.Remove(ListOfMyItems.Last(x => x.ID == duplicateExists.First()));
     MyLogic.DeleteItemFromOrder(Bill.ID, duplicateExists.First());                      
     return;
 } 
Run Code Online (Sandbox Code Playgroud)

为什么第二个示例失败?

c# linq

1
推荐指数
1
解决办法
86
查看次数

以下两种访问属性的方法是否完全相同?

我正在将一个从VB.NET移植到C#的应用程序,并发现我不能.ItemOf在C#中使用,但是如果我没有使用.ItemOf它似乎工作.但是,以下两个片段实际上是在做同样的事情吗?

VB

Public Shared Settings As NameValueCollection
'some code
 Dim key As XmlNode
 For Each key In node.ChildNodes
     MobileConfiguration.Settings.Add(key.Attributes.ItemOf("key").Value, key.Attributes.ItemOf("value").Value)
 Next
'some code
Run Code Online (Sandbox Code Playgroud)

C#

public static NameValueCollection Settings;
//some code
 foreach (XmlNode key in node.ChildNodes)
     MobileConfiguration.Settings.Add(key.Attributes["key"].Value, key.Attributes["value"].Value);     
//some code
Run Code Online (Sandbox Code Playgroud)

c# vb.net

0
推荐指数
1
解决办法
67
查看次数

标签 统计

c# ×3

active-directory ×1

dll ×1

dynamic ×1

linq ×1

powershell ×1

tuples ×1

vb.net ×1