如何使用 System.DirectoryServices.ActiveDirectory.Domain 类获取域别名

2024-01-04

我们有一个完整的域名,例如长域名.com;该域名已替换为别名short。可以使用以下命令检索此别名netapi32.dll, 像这样:

[DllImport("Netapi32.dll")]
static extern int NetApiBufferFree(IntPtr Buffer);

// Returns the domain name the computer is joined to, or "" if not joined.
public static string GetJoinedDomain()
{
    int result = 0;
    string domain = null;
    IntPtr pDomain = IntPtr.Zero;
    NetJoinStatus status = NetJoinStatus.NetSetupUnknownStatus;
    try
    {
        result = NetGetJoinInformation(null, out pDomain, out status);
        if (result == ErrorSuccess &&
            status == NetJoinStatus.NetSetupDomainName)
        {
            domain = Marshal.PtrToStringAuto(pDomain);
        }
    }
    finally
    {
        if (pDomain != IntPtr.Zero) NetApiBufferFree(pDomain);
    }
    if (domain == null) domain = "";
    return domain;
}

该方法返回sort价值。但使用System.DirectoryServices.ActiveDirectory.Domain类及其Name财产,我得到长域名.com价值。在Debug模式下搜索属性,没有找到short值字段或属性。是否可以与System.DirectoryServices.ActiveDirectory.Domain班级?或者可能是其他一些类别的System.DirectoryServices命名空间?如何获得short域名值不导入外部*.dll?


private string GetNetbiosDomainName(string dnsDomainName)
    {
        string netbiosDomainName = string.Empty;

        DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE");

        string configurationNamingContext = rootDSE.Properties["configurationNamingContext"][0].ToString();

        DirectoryEntry searchRoot = new DirectoryEntry("LDAP://cn=Partitions," + configurationNamingContext);

        DirectorySearcher searcher = new DirectorySearcher(searchRoot);
        searcher.SearchScope = SearchScope.OneLevel;
        searcher.PropertiesToLoad.Add("netbiosname");
        searcher.Filter = string.Format("(&(objectcategory=Crossref)(dnsRoot={0})(netBIOSName=*))", dnsDomainName);

        SearchResult result = searcher.FindOne();

        if (result != null)
        {
            netbiosDomainName = result.Properties["netbiosname"][0].ToString();
        }

        return netbiosDomainName;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 System.DirectoryServices.ActiveDirectory.Domain 类获取域别名 的相关文章

随机推荐

  • Gridster 的替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我已经用过Gridster http gridster net 使用拖放多列网格的项目的库 遗憾的是
  • Angular HttpPromise:“success”/“error”方法和“then”参数之间的区别

    根据AngularJS 文档 http docs angularjs org api ng 24http 调用 http返回以下内容 返回一个promise符合标准的对象then方法和两个http具体方法 success and error
  • 如何自定义条形注释以不显示所选值

    我有以下数据集 data 6 92 1 78 0 0 0 0 3 5 8 82 3 06 0 0 0 0 5 54 10 8 6 03 0 0 0 0 6 8 13 69 8 61 9 98 0 0 9 42 4 91 3 54 2 62
  • Rails 生成迁移未将 :null => false 设置为created_at 和updated_at

    我创建了一个全新的 Rails 应用程序 生成一些脚手架和一些模型 经过几次测试后 我意识到 t timestamps 生成的列不包含 传统 null gt false 选项 我需要这种行为 我看不出这是做什么的 我重新创建了一个新应用程序
  • 自定义列的 ExecuteStoreQuery

    我正在尝试运行自定义查询并且正在使用实体框架 我尝试了这个 string query SELECT dm DistrictName sm SchoolName u UserId u FirstName u LastName sa Stude
  • 用于识别 2D 特征的图像处理

    我创建了一个 iPhone 应用程序 它可以扫描一张方格纸的图像 然后告诉我哪些方块已被涂黑 哪些方块是空白的 我通过从左到右扫描并使用方格纸的线条作为指导来完成此操作 当我遇到方格纸线时 我开始寻找黑色 直到再次碰到方格纸线 然后 我不再
  • 随机数生成器的实现[重复]

    这个问题在这里已经有答案了 可能的重复 随机数生成器如何工作 https stackoverflow com questions 1716308 how does a random number generator work 我正在寻找 C
  • NodeJS:与 PHP 集成

    我听说 Node JS 非常适合制作实时聊天应用程序 我想在我的网站上实现聊天 现在我只有设计 所以我现在必须编写后端代码 但是当我使用时socket io express它并没有像它应该的那样工作 代码来自server js var ap
  • 通过 http 加载数据之前 angular2 kendo ui 网格的 busyindicator

    我正在使用 angular2 kendo ui 网格并通过 http 调用将数据绑定到网格 在http调用返回数据之前 我需要显示忙碌指示器 而不显示网格标题 直到分配数据 如何实现此目的 谢谢 拉古斯 我通过在 HTML 模板中声明以下内
  • 创建静态资源字典

    我创建了一个资源字典 希望将其与多个用户控件 xaml 文件合并 我只想创建此资源字典的一个实例 知道如何做到这一点吗 注意 合并应该仅通过 xaml 进行 而不是通过代码进行 感谢和问候 维沙尔 这个怎么样 class Dictionar
  • 在 JavaFX 的 FXML 文件中指定 ResourceBundle

    可以设置一个ResourceBundle在 Java 类中使用下面的代码 FXMLLoader loader new FXMLLoader getClass getResource my view fxml loader setResour
  • 如何刷新我的gridView?

    我有一个ListView 当我单击列表视图行的按钮时 将在列表中创建一个按钮main xml 我有onclicklistener自定义 listView 适配器中的按钮 我正在 sqlite 中保存该按钮的点击 并通过该 sqlite 我正
  • Java中两个字符串的交集

    需要一个 Java 函数来查找两个字符串的交集 即字符串共有的字符 例子 String s1 new String Sychelless String s2 new String Sydney Using HashSet
  • CakePHP 3.0 - 更改密码时将数据库密码与旧密码进行比较

    我正在开发 CakePHP 3 0 我想将数据库密码与 更改密码 功能中表单中输入的旧密码进行比较 但我无法这样做 因为密码经过哈希处理 即使我们使用相同的密码 哈希密码每次都不同 请帮助我 提前致谢 近战 我会在您的 UsersTable
  • log4j:WARN 无法识别的元素滚动策略

    当我的应用程序启动时 我在日志中收到此警告 log4j WARN Unrecognized element rollingPolicy 尝试向 Google 寻求答案 但添加 apache log4j extras 1 1 jar 并没有帮
  • 请输入提交消息来解释为什么需要进行此合并,特别是如果它将更新的上游合并到主题分支中

    我正在使用 Git 我从远程仓库拉取并收到一条错误消息 请输入提交消息来解释为什么需要合并 特别是如果它将更新的上游合并到主题分支中 I try to type a message and press Enter but nothing h
  • 如何在 xamarin 表单中使用 wikiitude 插件?

    我正在使用 Xamarin 开发跨平台 AR 应用程序 我正在使用 Wikitude 即时跟踪 我能够启动 Wikitude 活动并能够运行即时跟踪 现在我想在跟踪时捕获高分辨率图像 我正在尝试构建插件来获取帧 然后将其转换为图像流 她是我
  • fread 错误“意外的字符结尾字段”

    请你帮助我好吗 我正在尝试加载大型 TSV 文件 4 百万行 并用于该 fread 速度惊人 问题是 当到达某一行时 所有程序都会崩溃 来自 verbose 的最后一条消息是 将数据行 2220004 上的第 12 列从 INT64 转换为
  • 如何使 Qt 5.9.1 附带的 QtLinguist 工作?

    Goal 使用以下命令生成 更新 Qt 小部件应用程序的 ts 文件lupdate Setup Windows 7 Pro 64 也在 Windows 10 家庭版上尝试过 适用于 msvc2017 64 位的 Qt 5 9 1 Prebu
  • 如何使用 System.DirectoryServices.ActiveDirectory.Domain 类获取域别名

    我们有一个完整的域名 例如长域名 com 该域名已替换为别名short 可以使用以下命令检索此别名netapi32 dll 像这样 DllImport Netapi32 dll static extern int NetApiBufferF