objective-c - 检查是否可以从 macOS 机器访问 AD 域控制器
问题描述
有一个软件可以根据 Active Directory 域控制器(对于加入域的机器)的可访问性来更改其行为。例如,如果 LAN 内的机器和域控制器可访问,则所有功能都可用。如果机器脱离 LAN,则该软件的某些功能将被禁用。
它在使用标准 Win32 API 的 Windows 上运行良好,但到目前为止我找不到为 macOS 实现它的方法。我找不到任何 API。我尝试了一些命令行工具。例如,
dscl "/Active Directory/<DOMAIN NAME>" read / dsAttrTypeNative:DomainName
odutil show nodenames
即使我断开 macOS 机器与 AD LAN 的连接,它们仍然会显示大约 30 分钟的信息,就像仍然可以访问域控制器一样。
我无法删除整个 Open Directory AD 缓存来制作刷新信息的工具,因为系统和其他应用程序都在使用缓存。我不想改变整个系统的行为。我不能为此终止(重新启动)服务,因为我需要经常(每 2-5 分钟)执行此操作。
我知道我可以使用ldapsearch(或 LDAP C++ 库)来检查 AD 域控制器的可访问性,但我的软件对域控制器配置一无所知。它没有任何凭据来请求信息。此外,在 Windows API 的情况下,默认使用 Kerberos。如果是 ldapsearch,则必须对其进行配置。
那么,是否有任何 macOS API(Objective C、C++)或任何系统命令工具可以在没有额外配置的情况下使用来检查 AD 域控制器是否可访问?
解决方案
推荐阅读
- php - 如何在php中增加完整的字符串?
- google-bigquery - 用于 Google BigQuery 的 SIMBA ODBC 驱动程序 - 在批处理模式下运行 SQL
- uisearchbar - 选择可搜索表时,Objective-C 中的 UISearchBar 会删除
- java - 使用 Java 或 Springboot 使用 AWS lambda 的 SaaS Web 应用程序架构?
- drake - 用于 Python 的 Drake 二进制安装问题
- node.js - 2021 年的 Webpack4:编译 evm 反编译器 Nodejs 包而不会出现大量编译错误,因为 webpack5 可用
- typescript - Vue/Typescript:检查不是 HTMLInputElement 类型的属性
- powershell - Powershell命令识别所有Windows类型和UNIX类型的文本文件
- tensorflow - 使用 Tensorflow 的问题:检查模块中的 ERROR:root:Internal Python error。以下是此内部错误的回溯
- reactjs - Socket.io-client 在 React.js 中没有连接