Runspace pipeline.invoke在循环中

时间:2013-07-01 12:50:49

标签: c# powershell runspace

我正在创建一个应用程序来收集大量的交换数据并将其放入一个漂亮的界面中。 到目前为止它运作良好,但我遇到了一个问题,我无法弄明白。 我怀疑它与我尝试在循环中调用管道的事实有关。 这是我得到的错误:

  

无法找到接受参数'Items'的位置参数。

这是我的代码:

List<Collections.UserMailbox.Accessrights> items = new List<Collections.UserMailbox.Accessrights>();

foreach (string folder in folders)
{
    Pipeline pipe2 = runspace.CreatePipeline();
    pipe2.Commands.Add(new Command("Get-MailboxFolderPermission " + primarysmtpaddress + @":\" + folder ,true"));

    foreach (PSObject psobj in pipe2.Invoke())
    {
        if (!psobj.Properties["AccessRights"].Value.ToString().Equals("None"))
        {
            Collections.UserMailbox.AccessRights item = new Collections.UserMailbox.AccessRights();
            item.AccessRight = psobj.Properties["AccessRights"].Value.ToString();
            item.foldername = psobj.Properties["FolderName"].Value.ToString();
            item.user = psobj.Properties["User"].Value.ToString();
            items.Add(item);
        }
    }
    pipe2.Dispose();
}

public class Collections
{
    public class UserMailbox
    {
        public class AccessRights
        {
            public string accright { get; set; }
            public string foldername { get; set; }
            public string user { get; set; }
        }
    }
}

在pipe2.invoke()上出错,上面提到了错误。 以前打开的管道我已经处理好了。

我希望有人为我找到解决方案。

1 个答案:

答案 0 :(得分:0)

我现在感觉很蠢.. 字符串文件夹中有“已删除项目”,该命令没有引号。所以它看到了“items”和命令的另一个参数。 导致错误....现在看起来很明显。