PDA

View Full Version : سوال: مشکل در ارسال command به command prompt



hahaie
دوشنبه 26 شهریور 1397, 07:50 صبح
دوستان سلام.
یه کدی دارم که میخوام command prompt را با دسترسی ادمین باز کنه و محتوای یک پوشه و یک کلید رجیستری رو حذف کنه:


private void ExecuteCommand(string Command)
{
System.Diagnostics.ProcessStartInfo ProcessInfo;
System.Diagnostics.Process Process;

ProcessInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe", "/C " + Command);
ProcessInfo.CreateNoWindow = false;
ProcessInfo.UseShellExecute = false;
ProcessInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
ProcessInfo.Domain = "mydomain.com";
ProcessInfo.UserName = "ad";
ProcessInfo.WorkingDirectory = "C:\\Windows\\System32";
System.String rawPassword = "ad@1234";
System.Security.SecureString encPassword = new System.Security.SecureString();
foreach (System.Char c in rawPassword)
{
encPassword.AppendChar(c);
}
ProcessInfo.Password = encPassword;
Process = System.Diagnostics.Process.Start(ProcessInfo);


}
private void button1_Click(object sender, EventArgs e)
{
ExecuteCommand("del C:\\Users\\pc-1205\\AppData\\Roaming\\Microsoft\\Windows\\Themes /s /q ");
//ExecuteCommand("ping 192.168.1.2 ");
//ExecuteCommand("services.msc");
}


مشکلی که دارم اینه که در کدهای دکمه خط اول که مربوط به حذف فایل هاست عمل نمیکنه(فایل های حذف نمیشن-کامند در cmd به صورت دستی اجرا شد عمل کرد) ولی خط دوم(ping) و خط سوم(services,msc) عمل میکنه.
به نظر شما مشکل از کجاس؟
ممنون

hahaie
شنبه 31 شهریور 1397, 12:56 عصر
سلام
کسی نمیدونه؟؟؟

ahmadreza517
شنبه 31 شهریور 1397, 14:30 عصر
سلام
حتما باید فایل بصورت کامند حذف بشه؟

hahaie
شنبه 31 شهریور 1397, 18:07 عصر
بله بايد به صورت کامند حذف بشه چون لازمه برا حذفش دسترسی ادمین داشته باشی.
اما یه نکته جالب امروز بهش برخوردم:
اومدم کد رو اینطوری تست کردم:کامند رو تکه تکه ارسال کردم و به جای del از cd استفاده کردم که ببینم مشکلش چیه.دیدم اصلا نمیتونه وارد پوشه ی pc-1205 بشه.
بعدش اومدم cmd رو در محیط ویندوز با همین یوزر پسوردی که توی کدها نوشتم run as كردم دیدم وارد پوشه شدم و مشکلی نبود.
(اینو توی پرانتز میگم فقط زیاد بهش توجه نکنید که گیج بشید:در ویندوز به پوشه دسترسی everyone دادم مشکل حل شد.این راه حل نیست چون نمیتونم بیام رو کلی کلاینت توی دامین اینکار رو بکنم).
اما نکته اینجاس که توی کدهای بالا اون قسمتی که مربوط به یوزر پسورد و نام دامین هست رو برش داشتم مشکل حل شد و تونست به پوشه وارد بشه!! :متعجب:
در حالیکه این یوزر،یوزر ادمین دامین هستش.
نمیتونم cmd رو با يوزر ادمین اجرا نکنم چون بعد از طریق cmd میخوام کارایی بکنم که نیازه به صورت ادمین اجرا بشه. :گریه::گریه: