PDA

View Full Version : ساخت کابر محلی در ویندوز local user



xxxsenatorxxx
شنبه 18 شهریور 1391, 23:51 عصر
با سلام
چجوری میتونم یک یوزر اکانت با سی شارپ برای ویندوز ایجاد کنم
یه چیزایی پیدا کردم ولی جالب نیست(امکانات نداره)
مثلا ادمین باشه و .....

public void CreateLocalUser(string username, string password, string homedir)
{
if (!Directory.Exists(homedir))
Directory.CreateDirectory(homedir);

Process MyProc = new Process();
MyProc.StartInfo.WorkingDirectory = "hh";
MyProc.StartInfo.FileName = "net.exe";
MyProc.StartInfo.UseShellExecute = false;
MyProc.StartInfo.RedirectStandardError = true;
MyProc.StartInfo.RedirectStandardInput = true;
MyProc.StartInfo.RedirectStandardOutput = true;
MyProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

MyProc.StartInfo.Arguments = @" user " + username + @" " + password + @" /ADD /ACTIVE:YES " +
@"/EXPIRES:NEVER /FULLNAME:" + username + @" /HOMEDIR:""" +
homedir + @""" /PASSWORDCHG:NO /PASSWORDREQ:YES";


MyProc.Start();
MyProc.WaitForExit();
MyProc.Close();
}

mehdy.programmer
یک شنبه 19 شهریور 1391, 00:58 صبح
چرا! هم امکانات داره! باید بلد باشی ازش استفاده کنی! (ولی اینجا انجمن برنامه نویسیه نه هک)

xxxsenatorxxx
یک شنبه 19 شهریور 1391, 11:01 صبح
چرا! هم امکانات داره! باید بلد باشی ازش استفاده کنی! (ولی اینجا انجمن برنامه نویسیه نه هک)

مگه ساخت اکانت فقط تو ویروس نویسی استفاده میشه؟؟؟؟؟
میشه شما که بلدی به ما هم یاد بدی

mehdy.programmer
یک شنبه 19 شهریور 1391, 12:51 عصر
نه فقط تو ویروس نویسی استفاده نمیشه (مثلا SQL Server از این امکان بهره می بره) ولی بنده بنا به تاپیک های پشت سر شما که آخریش هم امروز به همین ویروس نویسی ختم شد اینو گفتم!
ولی باز من برای اهداف علمی روشش رو می گم! من الان چون Visual Studio در دسترسم نیست کد تو C# رو نمیگم(که اشتباه نباشه) ولی یه فایل .Bat بسازو اینو توش بنویس

net user test 1234 /add
net localgroup administrators test /add

بعد تو C# اجراش کن!

xxxsenatorxxx
یک شنبه 19 شهریور 1391, 13:47 عصر
نه فقط تو ویروس نویسی استفاده نمیشه (مثلا SQL Server از این امکان بهره می بره) ولی بنده بنا به تاپیک های پشت سر شما که آخریش هم امروز به همین ویروس نویسی ختم شد اینو گفتم!
نه ربطی به اون نداره
و در مورد کدتون من با فایل bat و فرمان cmd بلدم ولی تو ویندوز فرم میخوام

ehsan7007
یک شنبه 19 شهریور 1391, 14:00 عصر
شاید یکی برای اهداف صلح امیز بخواد!
مثلا من خودم یه بار پسوردم رو فراموش کردم ، البته اون موقع یه اکانت دیگه هم داشتم که پسورد نداشت و با اون وارد شدم!

اگه میشه کدش رو بزارید!

mehdy.programmer
یک شنبه 19 شهریور 1391, 16:36 عصر
خوب خوبه که صلح آمیز باشه!:لبخند:
منم که گفتم چطوری!

متوجه منظورتون نشدم که می خواین تو ویندوز فرم باشه ،بیشتر توضیح بدین !

xxxsenatorxxx
یک شنبه 19 شهریور 1391, 17:28 عصر
خوب خوبه که صلح آمیز باشه!:لبخند:
منم که گفتم چطوری!

متوجه منظورتون نشدم که می خواین تو ویندوز فرم باشه ،بیشتر توضیح بدین !

میخوام یه برنامه با سی شارپ بسازم که 2 تا تکست باکس داشته باشه(یوزر و پسورد) و یک چک باکس(ادمین و معمولی)
و با زدن یک دکمه یوزرم رو تو ویندوز ایجاد کنه دیگه نرم از کنترل پنل و ....... . یه همچین چیزی نیاز دارم .
الان اون کدی رو که اول گذاشتم ببینید.2 تا اشکال داره.اون قابلیت نداره که یوزرم ادمین باشه و اینکه یک فایل اجرایی درست میکنه و از فرمان داس اینکارو میکنه میخوام مستقیم اینکارو بکنه

xxxsenatorxxx
یک شنبه 19 شهریور 1391, 19:51 عصر
دست همه درد نکنه خودم تونستم . میزارم بقیه هم استفاده کنند
باز اگر کسی میتونه امکانات بیشتری اضافه کنه و گسترشش بده بزاره

public void CreateUserAccount(string login, string password, string fullName, bool isAdmin)
{
try
{
DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntries entries = dirEntry.Children;
DirectoryEntry newUser = entries.Add(login, "user");
newUser.Properties["FullName"].Add(fullName);
newUser.Invoke("SetPassword", password);
newUser.CommitChanges();


// Remove the if condition along with the else to create user account in "user" group.
DirectoryEntry grp;
if (isAdmin)
{
grp = dirEntry.Children.Find("Administrators", "group");
if (grp != null) { grp.Invoke("Add", new object[] { newUser.Path.ToString() }); }
}
else
{
grp = dirEntry.Children.Find("Guests", "group");
if (grp != null) { grp.Invoke("Add", new object[] { newUser.Path.ToString() }); }
}


}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

alexmcse
یک شنبه 19 شهریور 1391, 23:45 عصر
عزیز پیغام زیر را میدهد

:تشویق:

xxxsenatorxxx
دوشنبه 20 شهریور 1391, 09:08 صبح
رفرنس دایرکتوری سرویس هم اضافه کن .تو فرم لودت هم اینو بزن
CreateUserAccount(textbox1.text, textbox2.text, textbox1.text, 1)
آخری هم اگر 1 باشه یوزرت از نوع ادمین هست اگر 0 باشه نوع استاندارد

البته از عکست فکر کنم یوزرت اجازه ساخت یوزر دیگه رو نمیده.یوزرت باید ادمین باشه. شایدم این یوزر رو قبلا ساختی با یه اسم دیگه امتحان کن

aradrobo
جمعه 13 بهمن 1391, 16:32 عصر
رفرنس دایرکتوری سرویس هم اضافه کن .تو فرم لودت هم اینو بزن
CreateUserAccount(textbox1.text, textbox2.text, textbox1.text, 1)
آخری هم اگر 1 باشه یوزرت از نوع ادمین هست اگر 0 باشه نوع استاندارد

البته از عکست فکر کنم یوزرت اجازه ساخت یوزر دیگه رو نمیده.یوزرت باید ادمین باشه. شایدم این یوزر رو قبلا ساختی با یه اسم دیگه امتحان کن

به مشکل بر خوردم . عدد 1 از نوع bool می باشد . برنامه اجرا نمی شود و خطا می دهد .