• 締切済み

C# Windowsでのユーザー名変更

C#を使用してWindowsのユーザーアカウントの名前を変更したいのですが、なかなか方法がみつかりません。 どなたかご教示願います。 環境:WinXP,Visual Studio 2005

みんなの回答

回答No.1

まずユーザーの追加について http://support.microsoft.com/kb/306273/ja で感覚をつかんでください。実際にコードを実行してみると面白いかもしれません。 >[ユーザー アカウント] をクリックします。新しいユーザー アカウントが [ユーザー アカウント] ダイアログ ボックスに表示されます。 ひょっとしたら,この段階に行くまでに再起動が必要だったかもしれません。 次はこれを読んで下さい。 using System; using System.DirectoryServices; class Class1 { static void Main(string[] args) { try { DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntry NewUser = AD.Children.Add("TestUser2", "user"); NewUser.Invoke("SetPassword", new object[] { "#12345Abc" }); NewUser.Invoke("Put", new object[] { "Description", "Test User from .NET" }); NewUser.CommitChanges(); DirectoryEntry grp; grp = AD.Children.Find("Guests", "group"); if (grp != null) { grp.Invoke("Add", new object[] { NewUser.Path.ToString() }); } Console.WriteLine("Account Created Successfully"); DirectoryEntry NewUser2 = AD.Children.Find("TestUser2", "user"); NewUser2.Properties["FullName"].Value = "hoge"; NewUser2.CommitChanges(); grp.CommitChanges(); Console.WriteLine("AccountName Changed"); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } } } WinXP Pro/IE7 VPC Image + VC# 2008 Beta2において,ユーザーを作成後, 再起動したら「ようこそ」画面にhogeというユーザーが追加されていることに気づくでしょう。 (再起動しなくても「コンピュータの管理」には反映されているし, 二回目コードを実行しようとすると 「ユーザは既にいるよ」といわれてしまう) テスト用に作ったので,ユーザーをさっくり削除ってことで。 ●最初は NewUser2.Rename("hoge"); とかやってみたのですが, これで変更されるのは Nameであるようだ。 なお,上記ソースコードで変更されるのはFull Nameのようで, 「ようこそ」画面や「ユーザーアカウント」に表示される名前は こっちのようです。 ●VPCで実験を行ったのは手元の実機のWindows XP Proで失敗したから。 ひょっとしたら nLiteでコンポーネントを削除したりしたことが 原因かもしれない。 また,Windows XP Homeでどうなるかはわからない。 ●最初実機でコードを書いていたとき, SharpDevelopのnightly版を使っていたが, 「.NET 2.0向けコンパイルできねーよ。 .NET 3.5向けにコンパイルするよう設定変えやがれ。」と言われた。 上記MSKB306273ではVS2005でのやり方を紹介しているのだが・・・ ●FullName以外にどんなキーを指定できるのかはよくわからない。 たまたま適当にやっててうまく行っちゃったので。できれば補足やらお礼で,一覧を見つけてきてくれるとうれしい。 ●できたらInvokeで指定できるコマンドの一覧も・・・ #ま、うまくいくにしろ、失敗するにしろ、sys32767さんが書くコードの突破口になれば幸いです。

すると、全ての回答が全文表示されます。

関連するQ&A