如何通过终端在Mac上获取活动目录域名

时间:2014-03-09 02:41:19

标签: macos active-directory

基本上我试图通过终端用户主体名称获取:username@full.name.of.activedomain.com 在Windows中,我可以运行“whoami / upn”,它将输出所有内容。如果用户不在Active Directory下,则不显示任何内容。所以对于Windows来说,whoami对我而言就像是一种魅力。 在Mac上,我发现了一个名为“HOSTNAME”的命令。并且还有一个别名 - $ HOSTNAME。如果最终用户绑定到Active Directory - 它会输出其名称吗?换句话说 - 我可以调用这个命令: echo $ USER @ $ HOSTNAME获取用户主要名称......

或者我可以在终端中使用一些不同的命令或别名?请帮忙。

3 个答案:

答案 0 :(得分:0)

一段脚本可以帮助您找到OSX上的内容:

domainName=`echo show com.apple.opendirectoryd.ActiveDirectory |
scutil | grep DomainNameFlat | awk '{print $3}'`
if [ $? -ne 0 ]
then
    echo "Failed to get domain name, exiting script"
    exit 1
fi

if [ -z $domainName ]
then
     echo "Failed to get domain name, exiting script"
     exit 1
fi

echo "AD Domain name: $domainName "

userName=`id -u -nr`
if [ $? -ne 0 ]
then
     echo "Failed to get user name, exiting script"
     exit 1
fi

echo "User name: $userName"

upn=`dscl "/Active Directory/$domainName/All Domains" -read
            /Users/$userName userPrincipalName`
if [ $? -ne 0 ]
then
    echo "Failed to get user's upn, exiting script"
    exit 1
fi

答案 1 :(得分:0)

我知道这可能为时已晚。仍然可以在将来对某人有所帮助。

您可以使用“ klist”命令来检索当前登录用户的userPrincipalName。

答案 2 :(得分:-2)

以上是BASH脚本。理想情况下,它需要一个she-bang作为第一线。我没有测试过上面的脚本,但dscl是“目录服务命令行”实用程序。

!/ usr / bin / env bash