windows - কিভাবে একটি ব্যাচ ফাইল থেকে একটি PowerShell স্ক্রিপ্ট চালানো



batch-file (5)

আমি PowerShell এই স্ক্রিপ্ট চালানোর চেষ্টা করছি। আমি নীচের স্ক্রিপ্টটি ps.ps1 হিসাবে আমার ডেস্কটপে সংরক্ষিত করেছি।

$query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2"
Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"}

এই পাওয়ারশেল স্ক্রিপ্ট চালানোর জন্য আমি একটি ব্যাচ স্ক্রিপ্ট তৈরি করেছি

@echo off
Powershell.exe set-executionpolicy remotesigned -File  C:\Users\SE\Desktop\ps.ps1
pause

কিন্তু আমি এই ত্রুটি পাচ্ছি:

https://ffff65535.com


আপনার পাওয়ারশেল লগ-স্ক্রিপ্টটি ২01২ সার্ভারে 5 মিনিটের (আমার খনি হিসাবে) পরে চলছে, সার্ভারে একটি জিপিও সেটিং আছে- 'লগইন স্ক্রিপ্ট বিলম্বটি কনফিগার করুন' ডিফল্ট সেটিং 'কনফিগার করা নেই' এটি 5-মিনিটের বিলম্ব ছাড়বে লগইন স্ক্রিপ্ট চালানোর আগে।


আপনি -ExecutionPolicy পরামিতি প্রয়োজন:

Powershell.exe -executionpolicy remotesigned -File  C:\Users\SE\Desktop\ps.ps1

অন্যথা পাওয়ারশেলে আর্গুমেন্টগুলিকে একটি লাইন কার্যকর করার জন্য বিবেচনা করা হয় এবং Set-ExecutionPolicy পলিসিটি একটি cmdlet হয়, এটির কোনও ফাইলের প্যারামিটার থাকে না।


আপনি যদি অ্যাডমিনিস্ট্রেটর হিসাবে PowerShell কল করে একটি ব্যাচ ফাইল চালান, তবে আপনি এটিকে ভালোভাবে চালান, আপনার সমস্ত সমস্যাগুলি সংরক্ষণ করে:

powershell.exe -ExecutionPolicy Bypass -Command "Path\xxx.ps1"

Bypass ব্যবহার করা ভাল ...


আমি একটি ব্যাচ ফাইল থেকে কীভাবে PowerShell স্ক্রিপ্ট কল করব এবং এখানে আমার ব্লগ পোস্টে কীভাবে এটি করতে চাই তা ব্যাখ্যা করছি।

এটি মূলত আপনি যা খুঁজছেন তা:

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\Users\SE\Desktop\ps.ps1'"

এবং যদি আপনার অ্যাডমিন হিসাবে আপনার পাওয়ারশেল স্ক্রিপ্ট চালানোর প্রয়োজন হয় তবে এটি ব্যবহার করুন:

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\Users\SE\Desktop\ps.ps1""' -Verb RunAs}"

যদিও PowerShell স্ক্রিপ্টের পুরো পথটি হার্ড-কোডিংয়ের পরিবর্তে, আমার ব্লগ পোস্ট বর্ণনা করে, আমি একই ডিরেক্টরির মধ্যে ব্যাচ ফাইল এবং পাওয়ারশেল স্ক্রিপ্ট ফাইল স্থাপন করার সুপারিশ করি।


যদি আপনি সম্পূর্ণ ডিরেক্টরি থেকে বর্তমান ডিরেক্টরি থেকে চালাতে চান তবে আপনি এটি ব্যবহার করতে পারেন:

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& './ps.ps1'"




batch-file