2016-03-29 6 views
2

私は以下のコードをC#を使用して、ドメイン名を取得しようとしていますを使用してドメイン名を取得できません。しかし、それはWindowsサーバー2012 R2マシンで何も印刷されません。それは、ドメイン接続されたWindows 8マシンで正しくドメイン名を印刷し、</p> <pre><code>static void Main(string[] args) { var domainName = IPGlobalProperties.GetIPGlobalProperties().DomainName; Console.WriteLine(domainName); Console.ReadLine(); } </code></pre> <p>C#の

Windowsサーバー2012マシンでドメイン名を取得する方法。

+1

これをチェックしてください:http://stackoverflow.com/questions/4249139/c-sharp-active-directory-get-domain-name-of-user – zchpit

+0

サーバはドメインの一部ですか?複数のインターフェースを持っていますか?このチェックではどちらが使用されていますか?他のLANを無効にすると、それは解決されますか? –

+0

@zchpitユーザードメインはネットワークドメインである必要はありません。 –

答えて

1

、私はドメイン名を取得するには、このコードを使用しています。そのマシンの環境変数を介してアクセスされます。

string UserDomain = Environment.UserDomainName.ToString(); 
Console.WriteLine(UserDomain); 

ユーザーが適切なアクセス許可を持っていないサーバーで実行されていることが原因で例外が発生している可能性があります。あなたはexeで "管理者として実行"や "別のユーザーとして実行"を試みたことがありますか?

+0

私は管理者にもやってみました。しかし、それは動作していません。私はすでに環境変数から取得しようとしています。その働き。これはドメイン名を取得する正しい方法ですか? – Kumar

+0

クマール、あなたがどこにいても、もっと多くのことを知ることができます:1)より具体的には、コマンドプロンプトを開き、そのコマンドプロンプトからEXEを実行しましたか? 2)私は "set"コマンドを実行して、すべての環境変数を返すかどうかを調べ、値を確認しようとします。 3)iCaclsコマンドをチェックします。これは、そのユーザーがそのサーバー上でどのようなアクセス許可を持っているか把握するのに役立ちます4)私は、例外が何らかのパーミッション/ユーザーの問題を指摘していると思う。 –

1

私はそれがあなたのために働く願っています:過去には

string domainName = System.DirectoryServices.ActiveDirectory.Domain.GetComputerDomain().Name; 
+0

投げることができるのでtry/catchで囲みます。 –

+0

はい、try/catchでラップする必要がありますが、私は単一行のコードを与えたメソッドを書きませんでした。 –

+0

その作業。使い方?なぜ私のコードは動作しません。その方法で何か間違っています。 – Kumar

関連する問題