What is the most reliable way to get current AD domain-join information?...
With the advent of Azure AD domain join, several of the existing answers are likely outdated or incomplete.
What is the most accurate/reliable way to obtain the current AD domain status, and do it in such a way that I can tell if it's Azure AD, On Premise AD, or any other possible design (native UNIX Kerberos?)
Some of the keys I've found include:
- HKLMSoftwareMicrosoftWindows NTCurrentVersionWinlogon
- HKLMCurrentControlSetServicesTcpipParametersDomain
- Configuration/Policies/Administrative Templates/Windows Components/Workplace Join
Aside from calling the win32 API, DsRoleGetPrimaryDomainInformation, I may also inspect the registry.
- What is the most reliable method to get the primary domain join status?
Any additional information that relates to verifying the computer trust, connectivity "quality" to the domain controllers would be useful.
c# winapi active-directory registry azure-active-directory
add a comment |
With the advent of Azure AD domain join, several of the existing answers are likely outdated or incomplete.
What is the most accurate/reliable way to obtain the current AD domain status, and do it in such a way that I can tell if it's Azure AD, On Premise AD, or any other possible design (native UNIX Kerberos?)
Some of the keys I've found include:
- HKLMSoftwareMicrosoftWindows NTCurrentVersionWinlogon
- HKLMCurrentControlSetServicesTcpipParametersDomain
- Configuration/Policies/Administrative Templates/Windows Components/Workplace Join
Aside from calling the win32 API, DsRoleGetPrimaryDomainInformation, I may also inspect the registry.
- What is the most reliable method to get the primary domain join status?
Any additional information that relates to verifying the computer trust, connectivity "quality" to the domain controllers would be useful.
c# winapi active-directory registry azure-active-directory
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 '18 at 0:57
add a comment |
With the advent of Azure AD domain join, several of the existing answers are likely outdated or incomplete.
What is the most accurate/reliable way to obtain the current AD domain status, and do it in such a way that I can tell if it's Azure AD, On Premise AD, or any other possible design (native UNIX Kerberos?)
Some of the keys I've found include:
- HKLMSoftwareMicrosoftWindows NTCurrentVersionWinlogon
- HKLMCurrentControlSetServicesTcpipParametersDomain
- Configuration/Policies/Administrative Templates/Windows Components/Workplace Join
Aside from calling the win32 API, DsRoleGetPrimaryDomainInformation, I may also inspect the registry.
- What is the most reliable method to get the primary domain join status?
Any additional information that relates to verifying the computer trust, connectivity "quality" to the domain controllers would be useful.
c# winapi active-directory registry azure-active-directory
With the advent of Azure AD domain join, several of the existing answers are likely outdated or incomplete.
What is the most accurate/reliable way to obtain the current AD domain status, and do it in such a way that I can tell if it's Azure AD, On Premise AD, or any other possible design (native UNIX Kerberos?)
Some of the keys I've found include:
- HKLMSoftwareMicrosoftWindows NTCurrentVersionWinlogon
- HKLMCurrentControlSetServicesTcpipParametersDomain
- Configuration/Policies/Administrative Templates/Windows Components/Workplace Join
Aside from calling the win32 API, DsRoleGetPrimaryDomainInformation, I may also inspect the registry.
- What is the most reliable method to get the primary domain join status?
Any additional information that relates to verifying the computer trust, connectivity "quality" to the domain controllers would be useful.
c# winapi active-directory registry azure-active-directory
c# winapi active-directory registry azure-active-directory
asked Nov 19 '18 at 21:09
Ran DomRan Dom
378
378
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 '18 at 0:57
add a comment |
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 '18 at 0:57
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 '18 at 0:57
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 '18 at 0:57
add a comment |
1 Answer
1
active
oldest
votes
There seems to be two questions here:
- Find out if the computer is joined to a domain, and
- Find out what kind of domain it is.
I have a solution for the first question anyway. You tagged c#
, so if that's what you're using, you can use Domain.GetComputerDomain
. Put it in a try
/catch
block since if the computer is not joined to a domain, it will throw an ActiveDirectoryObjectNotFoundException
exception.
But if it is joined to a domain, you get back a Domain
object. That will give you some information about the domain, like the DomainMode
. I don't have access to a machine joined to an AzureAD domain, so I don't know what that information looks like in that case, but it might be different.
Otherwise, for deeper information about the domain, you will likely need to use the Name
of the domain and try to read more information from the domain itself.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53382671%2fwhat-is-the-most-reliable-way-to-get-current-ad-domain-join-information-dsrole%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
There seems to be two questions here:
- Find out if the computer is joined to a domain, and
- Find out what kind of domain it is.
I have a solution for the first question anyway. You tagged c#
, so if that's what you're using, you can use Domain.GetComputerDomain
. Put it in a try
/catch
block since if the computer is not joined to a domain, it will throw an ActiveDirectoryObjectNotFoundException
exception.
But if it is joined to a domain, you get back a Domain
object. That will give you some information about the domain, like the DomainMode
. I don't have access to a machine joined to an AzureAD domain, so I don't know what that information looks like in that case, but it might be different.
Otherwise, for deeper information about the domain, you will likely need to use the Name
of the domain and try to read more information from the domain itself.
add a comment |
There seems to be two questions here:
- Find out if the computer is joined to a domain, and
- Find out what kind of domain it is.
I have a solution for the first question anyway. You tagged c#
, so if that's what you're using, you can use Domain.GetComputerDomain
. Put it in a try
/catch
block since if the computer is not joined to a domain, it will throw an ActiveDirectoryObjectNotFoundException
exception.
But if it is joined to a domain, you get back a Domain
object. That will give you some information about the domain, like the DomainMode
. I don't have access to a machine joined to an AzureAD domain, so I don't know what that information looks like in that case, but it might be different.
Otherwise, for deeper information about the domain, you will likely need to use the Name
of the domain and try to read more information from the domain itself.
add a comment |
There seems to be two questions here:
- Find out if the computer is joined to a domain, and
- Find out what kind of domain it is.
I have a solution for the first question anyway. You tagged c#
, so if that's what you're using, you can use Domain.GetComputerDomain
. Put it in a try
/catch
block since if the computer is not joined to a domain, it will throw an ActiveDirectoryObjectNotFoundException
exception.
But if it is joined to a domain, you get back a Domain
object. That will give you some information about the domain, like the DomainMode
. I don't have access to a machine joined to an AzureAD domain, so I don't know what that information looks like in that case, but it might be different.
Otherwise, for deeper information about the domain, you will likely need to use the Name
of the domain and try to read more information from the domain itself.
There seems to be two questions here:
- Find out if the computer is joined to a domain, and
- Find out what kind of domain it is.
I have a solution for the first question anyway. You tagged c#
, so if that's what you're using, you can use Domain.GetComputerDomain
. Put it in a try
/catch
block since if the computer is not joined to a domain, it will throw an ActiveDirectoryObjectNotFoundException
exception.
But if it is joined to a domain, you get back a Domain
object. That will give you some information about the domain, like the DomainMode
. I don't have access to a machine joined to an AzureAD domain, so I don't know what that information looks like in that case, but it might be different.
Otherwise, for deeper information about the domain, you will likely need to use the Name
of the domain and try to read more information from the domain itself.
edited Nov 20 '18 at 18:35
answered Nov 20 '18 at 17:33
Gabriel LuciGabriel Luci
11k11525
11k11525
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53382671%2fwhat-is-the-most-reliable-way-to-get-current-ad-domain-join-information-dsrole%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 '18 at 0:57