gpt4 book ai didi

c# - 如何从 PowerShell 创建的枚举中获取值

转载 作者:行者123 更新时间:2023-11-30 17:16:23 25 4
gpt4 key购买 nike

我正在开发一个 asp.net 站点,我们的安全区域将使用该站点来管理我们 Exchange 环境中的邮箱等。在站点内,我调用各种 PowerShell 命令,然后通过 C# 处理这些结果。在一个特定实例中,我想显示所有未继承的邮箱权限。

这是我执行此操作的代码部分:

Collection<PSObject> results;
results = thisPipeline.Invoke();
myRunSpace.Close();

foreach (PSObject obj in results)
{
//Don't include inherited rights
if (obj.Properties["IsInherited"].Value.ToString().ToLower() != "true")
{
//Don't include permissions that are explicitly denied
if (obj.Properties["Deny"].Value.ToString().ToLower() != "true")
{
if (obj.Properties["User"].Value.ToString().ToLower() != "nt authority\\self")
{
TableRow permissionRow = new TableRow();
TableCell permissionUserCell = new TableCell();
TableCell permissionRightsCell = new TableCell();
Label permissionUserLabel = new Label();
Label permissionRightsLabel = new Label();

permissionUserLabel.Text = obj.Properties["User"].Value.ToString();
//This is my problem
permissionRightsLabel.Text = obj.Properties["AccessRights"].Value.ToString();

permissionUserCell.Controls.Add(permissionUserLabel);
permissionRightsCell.Controls.Add(permissionRightsLabel);

permissionRow.Controls.Add(permissionUserCell);
permissionRow.Controls.Add(permissionRightsCell);

table.Controls.Add(permissionRow);
}
}
}
}

这会导致表格的访问权限列显示 Microsoft.Exchange.Management.RecipientTasks.MailboxRights[]。

如果我尝试执行 foreach,我会收到编译器错误。

CS1579: foreach statement cannot operate on variables of type 'System.Management.Automation.PSPropertyInfo' because 'System.Management.Automation.PSPropertyInfo' does not contain a public definition for 'GetEnumerator'

我找到了很多关于如何通过直接 PowerShell 访问这些值的示例,但我不知道如何通过 C# 访问它们。

最佳答案

您需要转换值。

foreach (Object foo in (Microsoft.Exchange.Management.RecipientTasks.MailboxRights[])obj.Properties["AccessRights"].Value)

关于c# - 如何从 PowerShell 创建的枚举中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7263159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com