ব্যাটারি স্ট্যাটাস মনিটরিং এবং Blat মাধ্যমে তথ্য পাওয়ার জন্য Powershell স্ক্রিপ্ট (ই মেইল)


1

আমি এই পোস্টে একটি পাওয়ারশেল স্ক্রিপ্ট খুঁজে পেয়েছি: উইন্ডোজ 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)}

এটি সব সময় বীপ করবে, যা সাহায্য করবে না এবং মেল সার্ভার বন্যা করবে।

তাই কেউ আমাকে সাহায্য করতে পারেন? কোন ভাবেই এই স্ক্রিপ্টটি পরিবর্তন করা সম্ভব, এটি প্রতিটি সময় ই-মেইল পাঠানোর জন্য ব্ল্যাটের মতো কমান্ডটি চালাবে, পাওয়ার প্লাগ ইন বা আউট বা উভয় প্লাগইন হয়েছে?

আন্তরিক শুভেচ্ছা,

কেভিন ভ্যান থিয়েল


উত্তেজনাপূর্ণ শব্দ! আমি সন্ধ্যায় এটি দেখব (যদি আপনার কাছে উত্তর না থাকে তবে)। PowerShells পরিবর্তে blat ব্যবহার করার জন্য কোন কারণ Send-MailMessage?
SimonS

উত্তর:


0

আমি ইতিমধ্যে একটি সমাধান খুঁজে পাওয়া যায় নি। আইএসই থেকে চলার সময় এটি ঠিক সূক্ষ্ম কাজ করেছে, তাই আমাকে পাওয়ারশেল-স্ক্রিপ্টের পথে সামনে "শর্টকাট -ইনক্সিট -ফ" যোগ করতে হবে এবং তারপর "প্রশাসক হিসাবে চালান" চেকবক্সটি চেক করব। এর পরে, এটি শর্টকাট ব্যবহার করে ঠিক সূক্ষ্ম রান। Blat-কমান্ডটি ঠিক যেমনটি আমি মনে করি ফাংশনে থাকতে হবে:

...        
Function OnBatteryStatusChange ($NewStatus) {
      If ($NewStatus -eq 1) {
        $EventID = 5001
        $Message = "The computer was unplugged."
        blat.exe -subject "BatteryStatusMonitor" -from noreply-batterystatusmonitor@domain.de (...)
      } ElseIf ($NewStatus -eq 2) {
...

তারপরে, আমি একটি নির্ধারিত কাজও করেছি যা ব্যবহারকারী লগইন এবং পটভূমিতে স্বয়ংক্রিয়ভাবে স্ক্রিপ্ট চালায়। নির্ধারিত কাজের কর্মের জন্য, আপনাকে এটি উইন্ডোজ-ডিরেক্টরিতে PowerShhell এর পথটি অবশ্যই দিতে হবে। ঐচ্ছিক প্যারামিটার ক্ষেত্রগুলিতে, আপনাকে শর্টকাটের মতো সামনের দিকে "PowerShell -noexit -f" স্ক্রিপ্টটির পথ যোগ করতে হবে।

একটি দেখুন পরীক্ষা পরে, এটা এখন যে ভাবে খুব ভাল করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.