C# 通过Powershell使用.Net查询外部域

C# 通过Powershell使用.Net查询外部域,c#,.net,powershell,active-directory,C#,.net,Powershell,Active Directory,我目前正在开发一个脚本来帮助我完成我的工作。基本上,我需要做的是找到一种使用.NET对外部域执行一些广告查询的方法。以下是情况: 将笔记本电脑带到外部客户端 将笔记本电脑插入未加入域的网络 使用客户端提供的帐户运行我的程序,以执行对AD域的读取访问 由于我对编码的掌握目前仅限于PowerShell,因此我正在围绕这一点构建程序。为了确保在系统上没有本机管理工具的情况下向后兼容PSOHv2,我正在利用POSH提供的对.NET的直接访问。我现在需要的帮助是执行一个特定的.NET函数来收集数据。我的代

我目前正在开发一个脚本来帮助我完成我的工作。基本上,我需要做的是找到一种使用.NET对外部域执行一些广告查询的方法。以下是情况:

将笔记本电脑带到外部客户端 将笔记本电脑插入未加入域的网络 使用客户端提供的帐户运行我的程序,以执行对AD域的读取访问 由于我对编码的掌握目前仅限于PowerShell,因此我正在围绕这一点构建程序。为了确保在系统上没有本机管理工具的情况下向后兼容PSOHv2,我正在利用POSH提供的对.NET的直接访问。我现在需要的帮助是执行一个特定的.NET函数来收集数据。我的代码是:

[System.DirectoryServices.ActiveDirectory.DirectoryContext]$asdf= 新对象 System.DirectoryServices.ActiveDirectory.DirectoryContext'forest', 'domain1.com'、'bob'、'@QWASZX12qwaszx' [System.DirectoryServices.ActiveDirectory.GlobalCatalog]::findall$asdf 上述代码将在加入域的任何计算机上运行。域是否是外部的、全新的、可信的等等都无关紧要。。。我启动了一个全新的虚拟机,但未能运行代码。在一个全新的森林里把它提升为DC,它工作得非常完美。降级后再次失败。以下是我收到的错误:

使用1个参数调用FindAll时出现异常:当前安全上下文未与Active Directory域或林关联。 第1行字符:128 + ... ryContext]$New Object System.DirectoryServices.ActiveDirectory.Direc。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:NotSpecified::[],MethodInvocationException +FullyQualifiedErrorId:ActiveDirectoryOperationException

我的问题是通过.NET我能让波什认为我是一个领域的一部分吗?显然,有一种方法可以在.NET中执行查询,因为我可以在机器加入域后执行查询。我认为这可能与.NET中的安全上下文有关,但我对.NET和C如此陌生,以至于我有点不知所措


我知道POSHv3 Win 8和更高版本中有一些本地的POSH命令,这将使这变得更加容易,但我试图解释大众市场Win 7中的最小公分母,我认为POSHv2。感谢您的反馈。

您是否考虑过设置一个VM映像以加入域?这样你就可以保持你的主机原封不动,只让虚拟机受制于所需的域策略和相关的麻烦。我担心的另一个问题是,如果客户不希望我的机器物理连接到网络,我是否希望将模块移交给客户机。但我想我不需要那种.NET访问。我想了想,一旦我遇到这个问题去解决它,这就变成了一件骄傲的事情。英雄联盟