প্রশাসনিক নন-ব্যবহারকারীর অ্যাকাউন্ট থেকে উইন্ডোজ পরিষেবা শুরু / বন্ধ করার বিষয়ে আমি যা শিখেছি তার নীচে আমি যদি সবার জানা দরকার হয় তবে একসাথে রেখেছি।
প্রাথমিকভাবে, দুটি উইন্ডো রয়েছে যার মাধ্যমে একটি উইন্ডোজ পরিষেবা শুরু / বন্ধ করা যায়।
1. লগনের উইন্ডোজ ব্যবহারকারী অ্যাকাউন্টের মাধ্যমে সরাসরি পরিষেবাটি অ্যাক্সেস করা। 2. নেটওয়ার্ক পরিষেবা অ্যাকাউন্ট ব্যবহার করে আইআইএসের মাধ্যমে পরিষেবা অ্যাক্সেস করা।
পরিষেবা শুরু / বন্ধ করার জন্য কমান্ড লাইন কমান্ড:
C:/> net start <SERVICE_NAME>
C:/> net stop <SERVICE_NAME>
পরিষেবাগুলি শুরু / বন্ধ করার জন্য সি # কোড:
ServiceController service = new ServiceController(SERVICE_NAME);
//Start the service
if (service.Status == ServiceControllerStatus.Stopped)
{
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(10.0));
}
//Stop the service
if (service.Status == ServiceControllerStatus.Running)
{
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(10.0));
}
নোট 1:
আইআইএসের মাধ্যমে পরিষেবাটি অ্যাক্সেস করার সময়, একটি ভিজ্যুয়াল স্টুডিও সি # এএসপি.নেট ওয়েব অ্যাপ্লিকেশন তৈরি করুন এবং কোডটি সেখানে রেখে দিন। আইআইএস রুট ফোল্ডারে ওয়েবসিএসি স্থাপন করুন (সি: \ ইনপপব \ wwwroot \) এবং আপনি যেতে ভাল। Url দ্বারা এটি অ্যাক্সেস করুন http: ///
1. সরাসরি অ্যাক্সেস পদ্ধতি
যদি আপনি যে উইন্ডোজ ইউজার অ্যাকাউন্ট থেকে কমান্ডটি দেন বা কোডটি পরিচালনা করেন তা যদি কোনও প্রশাসনিক অ্যাকাউন্ট না হয় তবে আপনাকে সেই নির্দিষ্ট ব্যবহারকারীর অ্যাকাউন্টে বিশেষাধিকার নির্ধারণ করা দরকার যাতে এটি উইন্ডোজ পরিষেবাদি শুরু এবং বন্ধ করার ক্ষমতা রাখে। এইভাবে আপনি এটি করেন।
আপনি যে পরিষেবাটি শুরু / বন্ধ করতে চান সেখান থেকে প্রশাসনিক নন এমন একটি কম্পিউটারে প্রশাসকের অ্যাকাউন্টে লগইন করুন। কমান্ড প্রম্পটটি খুলুন এবং নিম্নলিখিত আদেশটি দিন:
C:/>sc sdshow <SERVICE_NAME>
এর আউটপুট এরকম কিছু হবে:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
এটি এই কম্পিউটারে প্রতিটি ব্যবহারকারী / গোষ্ঠীর সাথে সম্পর্কিত সমস্ত অনুমতিগুলি তালিকাভুক্ত করে।
A description of one part of above command is as follows:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)
It has the default owner, default group, and it has the Security descriptor control flags (A;;CCLCSWRPWPDTLOCRRC;;;SY):
ace_type - "A": ACCESS_ALLOWED_ACE_TYPE,
ace_flags - n/a,
rights - CCLCSWRPWPDTLOCRRC, please refer to the Access Rights and Access Masks and Directory Services Access Rights
CC: ADS_RIGHT_DS_CREATE_CHILD - Create a child DS object.
LC: ADS_RIGHT_ACTRL_DS_LIST - Enumerate a DS object.
SW: ADS_RIGHT_DS_SELF - Access allowed only after validated rights checks supported by the object are performed. This flag can be used alone to perform all validated rights checks of the object or it can be combined with an identifier of a specific validated right to perform only that check.
RP: ADS_RIGHT_DS_READ_PROP - Read the properties of a DS object.
WP: ADS_RIGHT_DS_WRITE_PROP - Write properties for a DS object.
DT: ADS_RIGHT_DS_DELETE_TREE - Delete a tree of DS objects.
LO: ADS_RIGHT_DS_LIST_OBJECT - List a tree of DS objects.
CR: ADS_RIGHT_DS_CONTROL_ACCESS - Access allowed only after extended rights checks supported by the object are performed. This flag can be used alone to perform all extended rights checks on the object or it can be combined with an identifier of a specific extended right to perform only that check.
RC: READ_CONTROL - The right to read the information in the object's security descriptor, not including the information in the system access control list (SACL). (This is a Standard Access Right, please read more http://msdn.microsoft.com/en-us/library/aa379607(VS.85).aspx)
object_guid - n/a,
inherit_object_guid - n/a,
account_sid - "SY": Local system. The corresponding RID is SECURITY_LOCAL_SYSTEM_RID.
এখন আমাদের যা করা দরকার তা হ'ল উইন্ডোজ পরিষেবাদি গোষ্ঠী বা ব্যবহারকারীদের কাছে উইন্ডোজ পরিষেবাদি স্টার্ট / স্টপ করার উপযুক্ত অনুমতিগুলি সেট করা। এক্ষেত্রে আমাদের বর্তমান নন-অ্যাডমিন ব্যবহারকারী পরিষেবাটি শুরু / বন্ধ করতে সক্ষম হবেন যাতে আমরা সেই ব্যবহারকারীর কাছে অনুমতি সেট করতে চলেছি। এটি করতে, আমাদের সেই নির্দিষ্ট উইন্ডোজ ব্যবহারকারী অ্যাকাউন্টের এসআইডি দরকার। এটি পেতে, নিবন্ধটি খুলুন (স্টার্ট> রিজেডিট) এবং নিম্নলিখিত রেজিস্ট্রি কীটি সনাক্ত করুন।
LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
এর অধীনে এই কম্পিউটারে প্রতিটি ব্যবহারকারীর অ্যাকাউন্টের জন্য পৃথক কী রয়েছে এবং কীটির নামটি প্রতিটি অ্যাকাউন্টের এসআইডি। এসআইডি সাধারণত এস -1-5-21-2103278432-2794320136-1883075150-1000 ফর্ম্যাট হয়। প্রতিটি কী-তে ক্লিক করুন এবং আপনি প্রতিটি কী-এর মানগুলির তালিকার ডানদিকে ফলকে দেখতে পাবেন। "প্রোফাইল ইমেজপথ" সন্ধান করুন এবং এর মান অনুসারে আপনি ব্যবহারকারীর নামটি খুঁজে পেতে পারেন যা এসআইডি অন্তর্ভুক্ত। উদাহরণস্বরূপ, যদি অ্যাকাউন্টটির ব্যবহারকারীর নাম SACH হয়, তবে "প্রোফাইলআইমেজপথ" এর মান "সি: \ ব্যবহারকারী \ সচ" এর মতো কিছু হবে। সুতরাং আপনি যে অ্যাকাউন্টে অনুমতিগুলি সেট করতে চান সেটির এসআইডি নোট করুন।
দ্রষ্টব্য 2:
এখানে একটি সাধারণ সি # কোড নমুনা যা বলা কীগুলির একটি তালিকা এবং এর মানগুলি ব্যবহার করতে ব্যবহার করা যেতে পারে।
//LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList RegistryKey
RegistryKey profileList = Registry.LocalMachine.OpenSubKey(keyName);
//Get a list of SID corresponding to each account on the computer
string[] sidList = profileList.GetSubKeyNames();
foreach (string sid in sidList)
{
//Based on above names, get 'Registry Keys' corresponding to each SID
RegistryKey profile = Registry.LocalMachine.OpenSubKey(Path.Combine(keyName, sid));
//SID
string strSID = sid;
//UserName which is represented by above SID
string strUserName = (string)profile.GetValue("ProfileImagePath");
}
এখন যে ব্যবহারকারী অ্যাকাউন্টের এসআইডি রয়েছে সেগুলিতে আমরা অনুমতিগুলি সেট করতে চাই, আসুন আমরা এটিতে নামি। ধরে নেওয়া যাক ব্যবহারকারীর অ্যাকাউন্টের এসআইডি হ'ল এস -1-5-21-2103278432-2794320136-1883075150-1000 । [Sc sdshow] কমান্ডের আউটপুট একটি পাঠ্য সম্পাদককে অনুলিপি করুন। এটি দেখতে এটির মতো হবে:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
এখন, কপি (একটি ;; CCLCSWRPWPDTLOCRRC ;;; এস ওয়াই) উপরের পাঠ্য অংশ, এবং এটি পেস্ট করুন ঠিক আগে এস: (এইউ; ... লেখার অংশ তারপর এই মত চেহারা যে অংশ পরিবর্তন।
(একটি ;; RPWPCR ;;; এস-1-5-21-2103278432-2794320136-1883075150-1000)
তারপরে সামনের অংশে sc sdset যুক্ত করুন এবং উপরের অংশটি উদ্ধৃতি সহ বন্ধ করুন। আপনার চূড়ান্ত আদেশটি নীচের মতো দেখতে হবে:
sc sdset <SERVICE_NAME> "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;S-1-5-21-2103278432-2794320136-1883075150-1000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
এখন এটি আপনার কমান্ড প্রম্পটে কার্যকর করুন এবং এটি সফল হলে নিম্নলিখিত ফলাফলটি প্রদান করা উচিত:
[SC] SetServiceObjectSecurity SUCCESS
এখন আমরা যেতে ভাল! আপনার অ-প্রশাসন ব্যবহারকারী অ্যাকাউন্টটি আপনার পরিষেবা শুরু / বন্ধ করার অনুমতি দেওয়া হয়েছে! ব্যবহারকারীর অ্যাকাউন্টে লগইন করার চেষ্টা করুন এবং পরিষেবাটি শুরু / বন্ধ করুন এবং এটি আপনাকে এটি করতে দেওয়া উচিত।
2. আইআইএস পদ্ধতি মাধ্যমে অ্যাক্সেস
এই ক্ষেত্রে, আমাদের আইআইএস ব্যবহারকারী "নেটওয়ার্ক পরিষেবাদি" লগন উইন্ডোজ ব্যবহারকারী অ্যাকাউন্টের পরিবর্তে অনুমতি প্রদান করতে হবে। পদ্ধতিটি একই, কেবলমাত্র কমান্ডের প্যারামিটারগুলি পরিবর্তন করা হবে। যেহেতু আমরা "নেটওয়ার্ক পরিষেবাদি" এ অনুমতি সেট করেছি, তাই আগে ব্যবহৃত চূড়ান্ত sdset কমান্ডের "NS" স্ট্রিংয়ের সাথে এসআইডি প্রতিস্থাপন করুন । চূড়ান্ত কমান্ডটি এর মতো দেখতে হবে:
sc sdset <SERVICE_NAME> "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;NS)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
এডমিন ব্যবহারকারী অ্যাকাউন্ট থেকে কমান্ড প্রম্পটে এটি চালান, এবং ভয়েলা! কোনও ওয়েব অ্যাকাউন্ট ব্যবহার করে আপনার কোনও অ্যাকাউন্ট থেকে পরিষেবা শুরু / বন্ধ করার অনুমতি রয়েছে (এটি অ্যাডমিন অ্যাকাউন্ট আইআর কিনা তা নির্বিশেষে)। কীভাবে এটি করা যায় তা জানতে নোট 1 দেখুন।