1

Windows ユーザーを作成するコードがあります。すべて問題なく、ユーザーが実際に作成されました。ただし、LoadUserProfile を pinvoke しようとすると、ユーザーがユーザー グループに属していないため、操作が失敗します。これで、このユーザーを実用的にユーザー グループに追加する方法がわかりましたが、ロケールによって変わる可能性があるため、グループ名「ユーザー」をハードコーディングしたくありません。デフォルトでユーザーをユーザーグループに追加する方法はありますか (ちなみに、runas user /add コマンドは既にそれを行っています)。


DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + domain);
DirectoryEntries entries = dirEntry.Children;
DirectoryEntry user = entries.Add(username, "User");
user.Properties["FullName"].Add("Dr Zoidberg");
user.Invoke("SetPassword", password);
user.CommitChanges();
4

1 に答える 1

2

Windows と Active Directory には、ビルトイン アカウントとグループのセキュリティ識別子である「既知の SID」が多数あります。よく知られた SID を使用して Users グループにバインドできます。これは、ロケールに関係なく変更されないためです。管理者はユーザー グループの名前を別の名前に変更することもできますが、SID は同じままです。

既知の SID は、System.Security.Principal.WellKnownSidType に列挙されています。

詳細については、 http://msdn.microsoft.com/en-us/library/system.security.principal.wellknownsidtype.aspxを参照してください。

于 2010-09-20T23:38:50.440 に答える