What is the most reliable way to get current AD domain-join information?...
up vote
0
down vote
favorite
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
add a comment |
up vote
0
down vote
favorite
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
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 at 0:57
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
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
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
c# winapi active-directory registry
asked Nov 19 at 21:09
Ran Dom
346
346
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 at 0:57
add a comment |
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 at 0:57
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 at 0:57
Have you tried Microsoft Graph? developer.microsoft.com/en-us/graph
– Monofuse
Nov 20 at 0:57
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
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 |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
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 |
up vote
1
down vote
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 |
up vote
1
down vote
up vote
1
down vote
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 at 18:35
answered Nov 20 at 17:33
Gabriel Luci
8,40411122
8,40411122
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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 at 0:57