আমি কিভাবে একটি নির্ধারিত টাস্ক একটি যুক্তি পাস করতে পারেন?


1

কার্য নির্ধারণকারীর মধ্যে একটি ব্যাচ ফাইল পরিচালনা করে এমন SYSTEM অ্যাকাউন্ট ব্যবহার করে আমার একটি কার্য আছে। ব্যবহারকারী (অ-প্রশাসক) একটি অন্য ব্যাচ ফাইল রয়েছে যা টাস্ক চালায়। কিভাবে ব্যবহারকারীর ব্যাচটি একটি পরিবর্তনশীল সেট করতে পারে যা টাস্কের ব্যাচ দ্বারা ব্যবহার করা যেতে পারে?

উত্তর:


1

গতিশীলভাবে ব্যাচ স্ক্রিপ্টে একটি পরিবর্তনশীল মান সেট করুন যা কার্য নির্ধারণকারী দ্বারা কার্যকর করা হবে

যেহেতু আপনি ব্যাখ্যা এবং নিম্নলিখিত নিশ্চিত করেছেন:

  1. আপনি ব্যাচ স্ক্রিপ্ট মধ্যে পরিবর্তনশীল মান প্রয়োজন কাজের সূচি হিসাবে executes SYSTEM একটি মান হিসাবে সেট করা হবে যে   লগ-ইন স্ক্রিপ্ট চালানোর জন্য ব্যবহারকারীর SID সাথে মেলে
  2. আপনি স্ক্রিপ্ট অবস্থান জন্য মেশিন প্রতি স্থানীয় ফাইল পাথ ব্যবহার করতে পারেন কাজের সূচি চালানো হবে
  3. একই স্ক্রিপ্টে একাধিক ব্যবহারকারীর সাইন ইন করার সময় একযোগে এই স্ক্রিপ্টটিকে চালানো হবে না

প্রস্তাবিত পদ্ধতির আরও বিস্তারিত বিশদ সহ একটি পৃথক উত্তর হিসাবে আমি এই সমাধানটি লিখেছি।

আপনি নিম্নলিখিত নিশ্চিত করতে চান:

  • সম্পর্কযুক্ত নিশ্চিত করুন নির্ধারিত কাজ করার প্রতিটি মেশিনে নাম সেটআপ করা হয় যা স্থানীয়ভাবে ব্যাচ স্ক্রিপ্টটি চালাবে
  • প্রতিটি correlated নিশ্চিত করুন নির্ধারিত কাজ করার সঙ্গে মৃত্যুদন্ড কার্যকর করা হয় যে প্রতিটি মেশিনে schtasks সব একই মান এক বিন্দু   ব্যাচ স্ক্রিপ্ট পথ এবং ফাইলের নাম।

ব্যাচ [লগইন] স্ক্রিপ্ট উদাহরণ

আমি আপনার জন্য ইতিমধ্যে সেটআপ যুক্তিটি পুনরায় ব্যবহার করেছি, তবে আমি কয়েকটি অতিরিক্ত ভেরিয়েবল এবং শর্তাধীন যোগ করেছি যদি স্থানীয় মেশিনে স্থানীয় ফোল্ডারটি তৈরি করা যুক্তিটি যদি বিদ্যমান থাকে না তবে ব্যাচ স্ক্রিপ্টটি বাস করবে মুছে ফেলা এটি রান প্রতি নির্মিত হয় যে ফোল্ডারে ব্যাচ ফাইল ইতিমধ্যে বিদ্যমান থাকে।

এটি হ'ল প্রত্যেকটি এক্সিকিউটেড (লগইন এ) একবার এটি একটি গতিশীল ব্যাচ স্ক্রিপ্ট তৈরি করবে। এটি তৈরি করে ব্যাচ স্ক্রিপ্ট গঠিত হবে Reg Add লজিক এবং এসআইডি অংশ মূল্যের সাথে কমান্ডগুলি ব্যবহারকারীর লগইন স্ক্রিপ্টের জন্য লগইন স্ক্রিপ্টটি হচ্ছে। তাই যখন কাজের সূচি স্ক্রিপ্টটি কার্যকর করে, এটি নিশ্চিত করে যে স্ক্রিপ্টটিতে সর্বদা লগইন / স্ক্রিপ্ট এক্সিকিউশন সম্পর্কিত প্রয়োজনীয় মান থাকে।

@ECHO ON

SET LocalDir=C:\localfolder
SET TaskScript=TaskScript.cmd

IF NOT EXIST "%LocalDir%" MD "%LocalDir%"
IF EXIST "%LocalDir%\%TaskScript%" DEL /Q /F "%LocalDir%\%TaskScript%"

for /f "tokens=2" %%i in ('whoami /user /fo table /nh') do set usersid=%%i

ECHO reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%usersid%" /v "State" /t REG_DWORD /d 128 /f>>"%LocalDir%\%TaskScript%"

schtasks /run /tn "My Profile Changer"

নির্ধারিত কাজ করার

আপনি শুধুমাত্র আপনি যে টাস্ক যা বলুন নিশ্চিত করতে হবে schtasks চালানো (যেমন। "My Profile Changer" ) আপনি লগইন ব্যাচ স্ক্রিপ্টে উল্লেখ হিসাবে একই পূর্ণ পাথ নির্দেশ SET LocalDir= এবং SET TaskScript= পরিবর্তনশীল মান।

তাই লগইন স্ক্রিপ্ট ভেরিয়েবল সমান C:\localfolder\TaskScript.cmd তারপর এই একই মান আপনি চান Program/Script ক্ষেত্র নির্দেশ করতে। আমি নির্বাণ সুপারিশ করবে SET LocalDir= পরিবর্তনশীল মান Start in (optional): ক্ষেত্র কিন্তু আপনি কোন আর্গুমেন্ট যোগ করার প্রয়োজন হবে না তাই ছেড়ে Add Arguments (optional): ক্ষেত্র খালি বা এটি ছাড়া কিছুই খালি ( নিচে স্ক্রিন শট )।

enter image description here


আরও সম্পদ


আমি ধারণা পছন্দ করি। পরিবর্তনশীল মান নির্ধারণ করার পরিবর্তে, আপনি একটি ফাইলের মান লিখছেন। আমার একমাত্র সমস্যা হল এটি একটি সুরক্ষা গর্ত প্রবর্তন করে: TaskScript.cmd ব্যবহারকারী-সংশোধনযোগ্য এবং তারা নিজেদেরকে উন্নত করার জন্য কার্যটিকে ট্রিগার করতে পারে। তাই আমি এটি শুধুমাত্র মান লিখতে পরিবর্তন করতে যাচ্ছি, এবং অন্য স্ক্রিপ্টটি সেই মানটি পড়বে।
Jason

@ জেসন আমি পুরো স্ক্রিপ্টটির চেয়েও ঠিক একটি মান লেখার কথা মনে করি। সিকিউরিটি অনুযায়ী, ফোল্ডারটির সাথে থাকা ফাইলটির সাথে একই অ্যাক্সেসের প্রয়োজন হবে। আমি একটি তালিকা থেকে একটি ফাইল কন্টেন্ট বা যাই হোক না কেন এবং তারপর ব্যাচ প্রক্রিয়াকরণের বাকি একটি পরিবর্তনশীল হিসাবে সেট করার জন্য ব্যাচ বলার সাথে পরিচিত। সম্ভবত অন্তত আমি আপনাকে একটি ভিন্ন কৌশল নিয়ে আসতে সাহায্য করেছি যা যথেষ্ট হবে। শুধু লগইন স্ক্রিপ্ট লজিকটি নিয়ন্ত্রণ করুন এবং এটিতে উপস্থিত থাকা টাস্ক ব্যাচটি প্রথমে মুছে ফেলার যুক্তি যুক্ত করুন যা এটি বিদ্যমান থাকলে চালানো হবে এবং তারপরে আপনি শুধুমাত্র সেই লজিকের সাথে এটি লিখুন।
Pimp Juice IT

@ জেসন আমি শুধু এই বিষয়টি খেয়াল করতে চেয়েছিলাম যে ব্যবহারকারী যদি স্ক্রিপ্টটি তৈরি করে তবেও এটি সেই যুক্তি দ্বারা কার্যকর করা হবে না যতক্ষণ না তারা এটি চালায় schtasks কমান্ড লাইন বা GUI কার্য নির্ধারণকারী থেকে। আপনি পরে যুক্তি তৈরি করতে পারেন schtasks ব্যাচ স্ক্রিপ্ট এবং ফোল্ডারটি মুছে ফেলার জন্য এটি সম্পূর্ণ হবে না এবং শেষ-ব্যবহারকারীকে উভয় তৈরি করতে হবে এবং তারপরে কমান্ড লাইন অ্যাক্সেস, বা কার্য নির্ধারণকারী GUI অ্যাক্সেস থাকবে এবং কীভাবে চালানো হবে তা জানতে হবে।
Pimp Juice IT
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.