- PR -

VS2003でアクティブディレクトリのプライマリグループの設定方法について

1
投稿者投稿内容
未記入
会議室デビュー日: 2006/10/25
投稿数: 3
投稿日時: 2006-10-25 20:28
VS.NET 2003 C#における
アクティブディレクトリのプライマリグループ設定方法の質問です。

環境としてアクティブディレクトリに「Domain Users」と「Group01」に所属するユーザがあり、プライマリグループが「Domain Users」となっています。
これをプログラム(VS.NET 2003 C#)で「Group01」にプライマリグループを設定する方法を教えて頂けないでしょうか。

「.NET Framework version 2.0 」では、「ObjectSecurity クラス」で出来そうな感じですが、
「VS.NET 2003 C#」のため「.NET Framework version 1.1」での実現方法をさがしております。

どなたかご教授頂けないでしょうか

宜しくお願いします。
taka
会議室デビュー日: 2005/07/05
投稿数: 5
お住まい・勤務地: 埼玉県さいたま市
投稿日時: 2006-10-26 00:30
こんばんは、takaと申します。
私もActiveDirectoryをプログラムから操作したことが無いので
確証はありませんが以下の名前空間のクラスを使えば可能かと思います。

[System.DirectoryServices]
http://msdn2.microsoft.com/ja-jp/library/system.directoryservices.aspx

ご参考になれば幸いです。
未記入
会議室デビュー日: 2006/10/25
投稿数: 3
投稿日時: 2006-10-26 13:59
taka様、返答有難うございます。

私も詳しく無いなりに調べて、

MSDN ライブラリ > .NET 開発 > .NET Framework SDK > クラス ライブラリ リファレンス > System.DirectoryServices > ActiveDirectorySecurity クラス > ActiveDirectorySecurity メンバ
[http://msdn2.microsoft.com/ja-jp/library/system.directoryservices.activedirectorysecurity_members.aspx]

「ObjectSecurity.SetGroup メソッド 」を見つけたのですが、

「メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。」
になっているのです。

たとえ使えたしても今の私の知識では困難なため、
コーディングの形で教えていただけるとありがたいです。

どなたかご教授頂けないでしょうか

宜しくお願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-10-26 15:25
こんにちは。

ADSI を利用して IADsUserPut メソッドで PrimaryGroupID 属性に「Group01」の RID を設定すれば実現するかもしれません。
また、この方法なら .Net Framework 1.1 でも実行できるはずです。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
rmmug
大ベテラン
会議室デビュー日: 2006/03/07
投稿数: 116
投稿日時: 2006-10-26 19:59
ちなみに、プライマリグループにする目的は何でしょうか。
参考に教えて頂けますか。
当方では、現在、ADの構築中でして・・・
未記入
会議室デビュー日: 2006/10/25
投稿数: 3
投稿日時: 2006-10-26 22:45
ue様、返答有難うございます。

ue様からの情報を参考に
既に登録済みのユーザのグループに対して以下のようにしたのですが、
「ディレクトリ サービスに指定された属性の構文が無効です。」となります。

adeContainer = new DirectoryEntry(ContainerPath, astrUserName, astrUserPasswd);

DirectoryEntry deUser = adeContainer.Children.Find("CN="+astrUserName, "user");

object obRet = deUser.Invoke( "Put", new object[] { "PrimaryGroupID", astrGroupName } );
deUser.CommitChanges();

グループ(astrGroupName)の指定がまずい気がするのですが
グループの RIDの取得はどのように行うのでしょうか?

ご教授頂けないでしょうか
1

スキルアップ/キャリアアップ(JOB@IT)