aco*_*ene 3 c# active-directory printers
尝试使用C#在Active Directory中查找打印机/共享.
这是我的示例代码,适用于用户,但我无法看到能够找到使用相同概念的打印机.(我是Active Directory的新手).
DirectoryEntry entry = new DirectoryEntry();
entry.Path = "LDAP://xxx.xxx.xx.xx/CN=Printers;DC=domainName, DC=com";
entry.Username = @"domainName.com\Administrator";
entry.Password = "admin";
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(objectCategory=printQueue)";
SearchResult result = search.FindOne();
if (result != null)
{
ResultPropertyCollection fields = result.Properties;
foreach (String ldapField in fields.PropertyNames)
{
foreach (Object myCollection in fields[ldapField])
Console.WriteLine(String.Format("{0,-20} : {1}",
ldapField, myCollection.ToString()));
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
与users(CN=Users)相比,CN=Printers安装后Active Directory中没有容器.
打印机在相关计算机容器中的Active Directory中发布.相关的计算机容器是什么意思?好吧,打开Active Directory用户和计算机MMC管理单元并按照以下过程操作:
因此,您看到打印机在相关计算机容器(打印机所属)中的Active Directory中发布,而不是在一个常见容器中发布CN=Printers.
因此,要在Active Directory中搜索打印机对象,必须指定其他LDAP路径.例如,您可以将Active Directory的根指定为搜索根:
using (DirectoryEntry entry = new DirectoryEntry())
{
entry.Path = "LDAP://xxx.xxx.xxx.xxx/DC=domainName,DC=com";
entry.Username = @"domainName.com\Administrator";
entry.Password = "SecurePassword";
using (DirectorySearcher search = new DirectorySearcher(entry))
{
search.Filter = "(objectCategory=printQueue)";
SearchResult result = search.FindOne();
if (result != null)
{
ResultPropertyCollection fields = result.Properties;
foreach (String ldapField in fields.PropertyNames)
{
foreach (Object myCollection in fields[ldapField])
Console.WriteLine(String.Format("{0,-20} : {1}",
ldapField, myCollection.ToString()));
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您也可以将搜索根指定为共享打印机的计算机的LDAP路径.例如,如果您的打印机在被叫的计算机上共享,server10并且此计算机位于CN=Computers容器中,请指定此LDAP路径:
LDAP://xxx.xxx.xxx.xxx/CN=server10,CN=Computers,DC=domainName,DC=com
Run Code Online (Sandbox Code Playgroud)
如果在域控制器上共享打印机,则LDAP路径略有不同(因为默认情况下,域控制器计算机对象位于OU=Domain Controllers组织单位中):
LDAP://xxx.xxx.xxx.xxx/CN=DomainControllerName,OU=Domain Controllers,DC=domainName,DC=com
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4844 次 |
| 最近记录: |