「ユーザーアカウントの管理」で一覧表示されるユーザーアカウントリストの取得
- 題名: 「ユーザーアカウントの管理」で一覧表示されるユーザーアカウントリストの取得
- 著者: りたる
- 日時: 2014/09/26 0:44:54
- ID: 32634
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 「ユーザーアカウントの管理」で一覧表示されるユーザーアカウントリストの取得
- 著者: コビト
- 日時: 2014/09/26 9:33:24
- ID: 32635
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 「ユーザーアカウントの管理」で一覧表示されるユーザーアカウントリストの取得
- 著者: りたる
- 日時: 2014/10/04 11:44:45
- ID: 32660
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつもお世話になっております。
「コントロール パネル\ユーザー アカウント\ユーザー アカウント」の「ユーザー アカウントの管理」で表示される、ローカルアカウント+ドメインアカウントのリストを、c#から取得できないでしょうか?
ローカルアカウントのみでしたら簡単なのですが、添付画像のようにドメインアカウントまで含めて取得したいのです。
試したコードは以下です。
string query = String.Format("Select * from Win32_UserAccount where domain='{0}'", Environment.MachineName);
ManagementObjectSearcher mos = new ManagementObjectSearcher(query);
foreach (ManagementObject Scn in mos.Get())
{
string a = Scn["Name"].ToString();
string b = Scn["SID"].ToString();
}
これだとローカルアカウントしか取得できません。クエリ部分を「where domain='DC00'」や、where句を無しにすると、ADの全アカウントが取得できてしまいます。
あくまで、「ユーザーアカウントの管理」ダイアログで表示される、現在のPC上のアカウントのリストが欲しいのです。(現在のPC上でユーザープロファイルの作られているユーザーということでしょうか?)
行いたいことは、以下になります。
1.PC上の共有スペース(%ProgramData%)に置いてあるデータを、特定のユーザーのみがPermissionを持つフォルダに振り分けたい
2.振り分け先ユーザーの登録、並びにフォルダへのPermission付与を管理者権限アプリで行いたい
この2で振り分けユーザーを選ぶために、現在のPC上のアカウントリストが欲しいというわけです。
ちなみに1の共有データ管理やアクセス方法は、システムの都合上DBなど使えないため、ツッコミはご容赦ください…。なお、アカウントは存在確認して消されていた場合は再設定するつもりです。
アカウントが特定できればいいため、例えばEditSecurityで表示される「ユーザー の選択」ダイアログ(IAzObjectPicker::GetPrincipals、またはIDSObjectPicker?)を.netから呼べないかなども調査しましたが、あまりにドキュメントが無く、断念しました。
こちらについても、もし参考URLなどあるようでしたらご教示いただければ幸いです。
以上、よろしくお願いいたします。
無題.jpg