আমি এই পোস্টে একটি পাওয়ারশেল স্ক্রিপ্ট খুঁজে পেয়েছি: উইন্ডোজ 7 প্লাগ ইন বা আনপ্লগড যখন কাজ এবং চলমান প্রোগ্রাম ট্রিগার?
স্ক্রিপ্ট নিম্নলিখিত:
New-EventLog -Source BatteryStatusMonitor -LogName Application
Function OnBatteryStatusChange ($NewStatus) {
If ($NewStatus -eq 1) {
$EventID = 5001
$Message = "The computer was unplugged."
} ElseIf ($NewStatus -eq 2) {
$EventID = 5002
$Message = "The computer was plugged in."
} Else {
$EventID = 5000
$Message = "Battery status changed to $NewStatus"
}
Write-EventLog -LogName Application -Source BatteryStatusMonitor -EventID $EventID -Message $Message
}
$Query = "select * from __instancemodificationevent within 3 where targetinstance isa 'win32_battery' and targetinstance.batterystatus <> previousinstance.batterystatus"
Register-WmiEvent -Query $Query -Action {OnBatteryStatusChange $Event.SourceEventArgs.NewEvent.TargetInstance.BatteryStatus} -SourceIdentifier "BatteryStatusChange"
For (;;) {}
এখন আমি এই স্ক্রিপ্টটি পরিবর্তন করতে চাই, যাতে এটি ই-মেইল-ক্লায়েন্ট ব্ল্যাট কমান্ড লাইন ব্যবহার করে একটি ই-মেইল পাঠাবে যা এখানে পাওয়া যাবে: http://www.blat.net/ প্রতিটি পরিবর্তনের জন্য ই-মেইল হবে নাকি এটি পুনরায় প্লাগ ইন হয়ে গেলে বা প্লাগ আউট করা হয়েছে সে সম্পর্কে আমি উদ্বিগ্ন নই। আমি নিজেকে এটা করার চেষ্টা করেছি, কিন্তু আমার ক্ষমতাশালী জ্ঞান সেখানে শেষ হয়। পরিবর্তনশীল $ 3 সংজ্ঞাগুলির পরে একটি "বিপ" কমান্ড যোগ করার চেষ্টা করেছি, এটি আমাদের মেইল সার্ভারটি বন্যা না করেই সেভাবে কাজ করবে কিনা তা নির্ধারণের জন্য বার্তা, কিন্তু এটি কিছু করেনি। আমি Write-Eventlog কমান্ড এবং $ Query Variable এর পরেও বীপ যোগ করার চেষ্টা করেছি, কিন্তু এটিও কিছু করেনি। অন্যথায়, যখন আমি স্ক্রিপ্টের শেষ বন্ধনীগুলিতে বীপ যোগ করছি:
For (;;) {[console]::beep(500,500)}
এটি সব সময় বীপ করবে, যা সাহায্য করবে না এবং মেল সার্ভার বন্যা করবে।
তাই কেউ আমাকে সাহায্য করতে পারেন? কোন ভাবেই এই স্ক্রিপ্টটি পরিবর্তন করা সম্ভব, এটি প্রতিটি সময় ই-মেইল পাঠানোর জন্য ব্ল্যাটের মতো কমান্ডটি চালাবে, পাওয়ার প্লাগ ইন বা আউট বা উভয় প্লাগইন হয়েছে?
আন্তরিক শুভেচ্ছা,
কেভিন ভ্যান থিয়েল
Send-MailMessage
?