-1

我正在尝试学习如何从 C# 调用 PowerShell cmdlet 以获取 Active Directory OU 的内容。我正在使用 PowerShell 类来执行此操作。我可以让它用于基本用途,但是现在我想执行这个 PS 命令:

 Get-ADComputer -SearchBase 'OU="Unfiled Computers",OU="Admnet Computers",dc=domain,dc=controller,dc=edu' -Filter '*'

当我尝试使用 C# 中的 PowerShell 类构建它时,我总是得到异常 A positional parameter cannot be found that accepts argument 'OU=Unfiled Computers'.

这是我在 C# 中使用的代码

PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-ADComputer");
ps.AddParameter("-SearchBase");
ps.AddArgument("OU=Unfiled Computers");
ps.AddArgument("OU=Admnet Computers");
ps.AddArgument("dc=domain");
ps.AddArgument("dc=controller");
ps.AddArgument("dc=edu");
ps.AddParameter("-Filter");
ps.AddArgument("'*'");

foreach(PSObject result in ps.Invoke())
        {
            System.Console.WriteLine(result);
        }

是否可以像这样在 C# 中执行此命令?

4

1 回答 1

0

我认为问题在于多余的引号。该命令查询应如下所示:

Get-ADComputer -SearchBase 'OU=Unfiled Computers,OU=Admnet Computers,dc=domain,dc=controller,dc=edu' -Filter *
于 2013-10-21T22:10:01.707 回答