পাওয়ারশেলের মাধ্যমে কোনও এসডি কার্ড প্রবেশ করানো হয়েছে কিনা তা সনাক্ত করুন


2

আমি এসডি কার্ড আছে কিনা তা সনাক্ত করতে পাওয়ারশেল ব্যবহার করতে চাই। কোনও এসডি কার্ড শনাক্ত করার পরে, পাওয়ারশেল স্ক্রিপ্টের স্বয়ংক্রিয়ভাবে কিছু ফাইল এসডি কার্ডে অনুলিপি করা উচিত।

আমি ইতিমধ্যে একটি পিএস স্ক্রিপ্ট খুঁজে পেয়েছি এবং চেষ্টা করেছি, তবে এটি কেবল ইউএসবি স্টিকগুলি সনাক্ত করে।

Register-WmiEvent -Class win32_VolumeChangeEvent -SourceIdentifier volumeChange
write-host (get-date -format s) " Beginning script..."
do{
    $newEvent = Wait-Event -SourceIdentifier volumeChange
    $eventType = $newEvent.SourceEventArgs.NewEvent.EventType
    $eventTypeName = switch($eventType)
    {
        1 {"Configuration changed"}
        2 {"Device arrival"}
        3 {"Device removal"}
        4 {"docking"}
    }
    write-host (get-date -format s) " Event detected = " $eventTypeName
    if ($eventType -eq 2)
    {
        $driveLetter = $newEvent.SourceEventArgs.NewEvent.DriveName
        $driveLabel = ([wmi]"Win32_LogicalDisk='$driveLetter'").VolumeName
        write-host (get-date -format s) " Drive name = " $driveLetter
        write-host (get-date -format s) " Drive label = " $driveLabel
        # Execute process if drive matches specified condition(s)
        if ($driveLetter -eq 'E:' -and $driveLabel -eq 'Test 1')
        {
            write-host (get-date -format s) " Starting task in 3 seconds..."
            start-sleep -seconds 3
            start-process "E:test.bat"
        }
    }
    Remove-Event -SourceIdentifier volumeChange
} while (1-eq1) #Loop until next event
Unregister-Event -SourceIdentifier volumeChange

আমার হাতে কোনও এসডি কার্ড নেই তাই আমি আমার পরামর্শটি পরীক্ষা করতে পারছি না। তবে পরিবর্তন if ($eventType -eq 2)করার চেষ্টা করুন if ($eventType -eq 4)। স্ক্রিপ্টটি তখন ডিভাইস আগমনের জন্য নজর রাখে না (নতুন ড্রাইভ চিঠি যুক্ত?) বরং নতুন হার্ডওয়্যার ডকিংয়ের জন্য। আমিও ধরে নিলাম যে আপনি ইতিমধ্যে if ($driveLetter -eq 'E:' -and $driveLabel -eq 'Test 1')নিজের প্রয়োজনে বদলে গেছেন?
নিক্সদা

হাই নিক্সদা এবং আপনার জবাবের জন্য আপনাকে ধন্যবাদ। আমি ইতিমধ্যে স্ক্রিপ্ট পরিবর্তন করেছি তবে এটি এখনও এসডি কার্ড সনাক্ত করতে পারে না। স্ক্রিপ্টটি কেন কাজ করে না তার মূল কারণ (আপনার মনে হয়) যদি আপনার অন্তর্নির্মিত এসডি কার্ড রিডার থাকে এবং আপনি এসডি কার্ডটি বের করেন, আপনি এখনও নির্ধারিত চিঠির সাহায্যে ডিস্ক ম্যানেজমেন্টের অধীনে কার্ড রিডার খুঁজে পেতে সক্ষম হন।
বলুন

আমি মনে করি আপনি ড্রাইভ লেটার সম্পর্কে ঠিক বলেছেন। এজন্য আমি ভেবেছিলাম ডিভাইসের আগমন কাজ করবে না। এখন আমি আবার এমএসডিএন পড়েছি বলে এটিতে হার্ডওয়্যার কনফিগারেশন (ডকিং এবং আনডকিং) এর পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে । সুতরাং ডকিং সম্ভবত কাজ করবে না। হুম
nixda

উত্তর:


0

আপনি যখন উইন্ডোজে কোনও ইউএসবি বা এসডি কার্ড খোলেন এটি "ভার্চুয়াল ডিস্ক পরিষেবা" শুরু করে উইন্ডোজে সিস্টেম ইভেন্ট লগ-এ প্রবেশ করে।

এটি মাথায় রেখে:

  1. আপনার এসডি কার্ডটি sertোকান এবং তারপরে ইভেন্ট ভিউয়ারে সিস্টেম লগ খুলুন।
  2. শীর্ষে (বা উপরে) একটি "ভার্চুয়াল ডিস্ক পরিষেবা" হবে।
  3. সেই এন্ট্রিটি হাইলাইট করুন এবং তারপরে নীচে "বিশদ" ট্যাবে ক্লিক করুন।
  4. প্রয়োজনে "সিস্টেম" এর পাশের প্লাস চিহ্নে ক্লিক করুন।
  5. এর মধ্যে এসডি কার্ডগুলির জন্য সঠিক "ইভেন্টআইডিআইডি" থাকবে, সুতরাং এটি আপনার স্ক্রিপ্টের জন্য ব্যবহার করুন।
  6. এখন একই "ভার্চুয়াল ডিস্ক পরিষেবা" তে ক্লিক করুন (দ্বিতীয় ধাপ থেকে)
  7. "এই ইভেন্টে টাস্ক সংযুক্ত করুন ..." নির্বাচন করুন
  8. "বেসিক টাস্ক উইজার্ড তৈরি করুন" এর মাধ্যমে "অ্যাকশন" এ যান এবং "একটি প্রোগ্রাম শুরু করুন" নির্বাচন করুন।
  9. আপনার পাওয়ারশেল স্ক্রিপ্টের পাথ প্রবেশ করুন এবং সমাপ্তি নির্বাচন করুন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.