Windows 7 Forums Search
Welcome to Windows 7 Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows 7. The Windows 7 forum also covers news and updates and has an extensive Windows 7 tutorial section that covers a wide range of tips and tricks.


Windows 7 - Event triggered task

 
10-11-2011   #1


Microsoft Windows 7 (x64)
 
 

Event triggered task

I'm trying to evoke a certain script once an event occurs, using the Scheduled Tasks in Windows 7 x64 with event triggering. The script copies a certain file from the USB stick to the HDD.
To be precise, the script should run upon specific USB stick is plugged in.

So far i only see the DriverFrameworks-UserMode events in the event viewer where the precise ID of the USB stick can be seen (<UMDFHostDeviceRequest instance="<str>" ... >)
What I also need is to see what drive letter is assigned upon "mount" operation.
I should be able to read somewhere what drive letter is assigned and perform a copy operation such as (e.g. using a .bat script):
Code:
xcopy <drive_letter>:\file.txt C:\some_dir\
Can this be done?
I know autorun is ignored with Windows 7 so that isn't an option.
Perhaps there's a better method..? Also i'd like to use only availlable tools without installing additional automation software.
If possible i'd like to avoid having to define a fixed drive letter assignment.

Thanks in advance

My System SpecsSystem Spec
10-18-2011   #2


Microsoft Windows 7 (x64)
 
 


So far I managed to compare the GUID of the partition and detect the assigned drive letter using a powershell script that is triggered upon PnP event:

Code:
$DriveLetter = ""
$ObjFile1 = ""
$ObjFile2 = ""
$File1Path = ""
$File2Path = ""
$PartGUID = ""


##### Partition GUID

$PartGUID = "<your partition guid>"

##### Get disk driveletter

Get-WmiObject Win32_Volume | 

foreach {
    if ($_.DeviceID -like "*$PartGUID*") {
        $DriveLetter = $_.DriveLetter
        }
    
}
if ($DriveLetter -like ""){
        Write-Host "Partition with GUID not found. Terminating."
        exit
}

##### Paths

$File1Path = $DriveLetter+"\file.ext"
$File2Path = "Some_file.ext"

#####

$ObjFile1 = Get-Item $File1Path

$ChkFile2 = Test-Path $File2Path

##### Copy from disk to Dropbox folder

if ($ChkFile2 -eq $True) {

    $ObjFile2 = Get-Item $File2Path

    #Replace file on Dropbox if older then on disk
    if ($ObjFile1.LastWriteTime -gt $ObjFile2.LastWriteTime) { 
        Write-Host "Older file exists, copying newer file..."
        Copy-Item $File1Path $File2Path
        Write-Host "Done."
        exit

    }
    else {Write-Host "File already at newest change."
        exit
    }
    
}

else {
    Write-Host "File doesn't exist in the Dropbox folder, copying new file..."
    Copy-Item $File1Path $File2Path
    Write-Host "Done."
    exit
}
Problem is, the script is executed whenever a mass storage device is plugged in.
Is it possible to somehow make task scheduler filter the event contents and trigger the script only for a specific drive?
My System SpecsSystem Spec
Reply

 Event triggered task problems?



Thread Tools



Similar Threads for: Event triggered task
Thread Forum
Windows dialog event sounds not triggered Performance & Maintenance
event id 41 task category 63 Crashes and Debugging
Random reboots, event:41 task:63 Crashes and Debugging
Power Kernal Event 41 task 63 Crashes and Debugging
Task Scheduler Error (Event ID 404) - Fix Tutorials


All times are GMT -5. The time now is 09:28 AM.



Windows 7 Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows 7" and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd
  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30