Faili allalaadimiseks kasutan .net WebClient objekti,
Ja kasuta powershelli, et tellida DownloadProgressChanged sündmus,
Uuendasin allalaadimise edenemisriba.
Tellimusüritus kasutab powershelli Register-ObjectEventi ning sissejuhatusdokument on järgmine:
Kokkuvõte Tellib sündmused, mis genereeritakse Microsoft .NET Framework objekti poolt.
grammatika Register-ObjectEvent [-InputObject] <PSObject> [-EventName] <String> [[-SourceIdentifier] <String>] [[-Action] <ScriptBlock>] [-Forward] [-MaxTriggerCount <Int32>] [-MessageData <PSObject>] [-Toetussündmus ] [<CommonParameters>]
Sisend Puudub Sa ei saa torustitada objekte Register-ObjectEvent .
Väljund System.Management.Automation.PSEventJob See cmdlet ei genereeri ühtegi väljundit.
Eksegees * Üritused, ürituste tellimused ja sündmuste järjekord eksisteerivad ainult praeguses sessioonis. Kui sulged praeguse sessiooni, visatakse sündmuste järjekord ära ja tellimus tühistatakse.
näide Näide 1: Telli sündmused, kui uus protsess algab PS C:\>$Query = Uus-Objekt System.Management.WqlEventQuery "__InstanceCreationEvent", (Uue objekti ajavahemik 0,0,1), "TargetInstance on 'Win32_Process'" PS C:\>$ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query PS C:\>Register-ObjectEvent -InputObject $ProcessWatcher -EventName "EventArrived"
See näide kajastab sündmusi, mis tekivad uue protsessi alguses.
Käsk kasutab ManagementEventWatcher objekti, et saada EventArrived sündmusi. Päringuobjekt määrab, et sündmused on Win32_Process klassi instantsi loomise sündmused. Näide 2: Määra tegevus, mis reageerib sündmusele PS C:\>$Query = Uus-Objekt System.Management.WqlEventQuery "__InstanceCreationEvent", (Uue objekti ajavahemik 0,0,1), "TargetInstance on 'Win32_Process'" PS C:\>$ProcessWatcher = New-Object System.Management.ManagementEventWatcher $query PS C:\>$Action = { New-Event "PowerShell.ProcessCreated" -Sender $Sender -EventArguments $EventArgs.NewEvent.TargetInstance } PS C:\>register-objectEvent -InputObject $ProcessWatcher -EventName "EventArrived" -Action $Action ID nimi olek HasMoreData asukohakäsk -- ---- ----- ----------- -------- ------- 2 422CFE5A-65E... Tõelise uue sündmuse käivitamine "PowerShe...
See näide näitab, kuidas määrata tegevus, mis reageerib sündmusele. Kui määrad tegevuse, ei lisata tõstetud sündmusi sündmuste järjekorda. Selle asemel reageerib tegevus sündmusele.
Selles näites, kui instantsi loomise sündmus tõstatatakse, mis tähistab uue protsessi algust, tõstatakse uus ProcessCreated sündmus.
Tegevus kasutab $Sender ja $EventArgs automaatseid muutujaid, mis on täidetud ainult sündmuste toimingute jaoks.
Register-ObjectEvent käsk tagastab tööobjekti, mis esindab tegevust ja töötab taustatööna. Taustatöö haldamiseks saad kasutada Job käsukoode, nagu Get-Job ja Receive-Job.
Lisateabe saamiseks vaata about_Jobs. Näide 3: Telli objektisündmused kaugarvutites PS C:\>$S = Uus-PSSession -ComputerName "Server01, Server02" PS C:\> Invoke-Command -Session $S -FilePath ProcessCreationEvent.ps1 PS C:\> Invoke-Command -Session $S { get-event }# ProcessCreationEvent.ps1function Enable-ProcessCreationEvent{ $Query = New-Object System.Management.WqlEventQuery "__ InstanceCreationEvent", ' (Uue objekti ajavahemik 0,0,1), ' "TargetInstance isa 'Win32_Process'" $ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query $Identifier = "WMI. ProcessCreated" Register-ObjectEvent -Input $ProcessWatcher -EventName "EventArrived" ' -SourceIdentifier $Identifier -MessageData "Test" -Forward}EnableProcessCreationEvent
See näide näitab, kuidas tellida objektisündmusi kaugarvutites.
Esimene käsk loob PSSessioonid kahel kaugarvutil ja salvestab need $S muutujasse.
Teine käsk kasutab Invoke-Command cmdlet'i FilePath parameetrit, et käivitada ProcessCreationEvent.ps1 skript igas PSSessionis $S.
Skript sisaldab käsku Register-ObjectEvent, mis tellib Win32_Process objekti instantside loomise sündmused ManagementEventWatcher objekti ja selle EventArrived kaudu sündmus. Näide 4: Kasuta dünaamilist moodulit PSEventJob objektis PS C:\>$Timer = Uute objektide taimerid. Taimer PS C:\>$Timer.Intervall = 500 PS C:\>$Job = Register-ObjectEvent -InputObject $Timer -EventName Möödunud -SourceIdentifier Timer.Random -Action {$Random = Get-Random -Min 0 -Max 100} PS C:\>$Job.gettype().fullnameSystem.Management.Automation.PSEventJob PS C:\>$Job | Formaadiloend -Omadus * Riik: RunningModule : __DynamicModule_6b5cbe82-d634-41d1-ae5e-ad7fe8d57fe0 StaatusSõnum : HasMoreData : Tõsi Asukoht: Käsk: $Random= Get-Random -Min 0 -Max 100 JobStateInfo : Jooksmine Lõpetatud: System.Threading.ManualResetEvent InstanceId : 88944290-133d-4b44-8752-f901bd8012e2 Id : 1 Nimi: Timer.Random ChildJobs : {}... PS C:\>$Timer.Enabled = $True PS C:\>& $Job.module {$Random}60 PS C:\>& $Job.module {$Random}47
See näide näitab, kuidas kasutada dünaamilist moodulit PSEventJob objektis, mis luuakse, kui sündmuste registreerimisse lisada tegevus.
Esimene käsk kasutab New-Object cmdlet'i taimeri objekti loomiseks. Teine käsk seab taimeri intervalliks 500 (millisekundit).
Kolmas käsk kasutab Register-ObjectEvent cmdlet'i, et registreerida taimeri objekti Elapsed sündmus. Käsk sisaldab tegevust, mis haldab sündmust. Iga kord, kui taimeri intervall möödub, tõstetakse sündmus ja tegevuse käsud käivituvad. Sellisel juhul genereerib Get-Random cmdlet juhusliku arvu vahemikus 0 kuni 100 ja salvestab selle $Randomvariable.
Kui kasutad Register-ObjectEvent käsus Action parameetrit, tagastab käsk PSEventJob objekti, mis esindab tegevust. Käsk salvestab töö objekti $Job muutujas.
PSEventJob objekt, mille tagastab Register-ObjectEvent cmdlet, on samuti saadaval sündmuse tellija Action omaduses. Lisainfo saamiseks vaata Get-EventSubscriber.
Neljas käsk näitab, et $Job muutuja sisaldab PSEventJob objekti. Viies käsk kasutab Format-List kässut, et kuvada kõik PSEventJob objekti omadused nimekirjas.
PSEventJobil on mooduli omadus, mis sisaldab dünaamilist skriptimoodulit, mis teostab tegevuse.
Kuues käsk aktiveerib taimeri.
Ülejäänud käsud kasutavad kõneoperaatorit (&), et kutsuda käsk moodulis ja kuvada $Random muutuja väärtust. Kõneoperaatoriga saab kutsuda esile mis tahes käsku moodulis, sealhulgas ka käske, mida ei ekspordita. Sellisel juhul näitavad käsud juhuslikku arvu, mis genereeritakse Elasti sündmuse ajal.
Lisateabe saamiseks moodulite kohta vaata about_Modules.
Seotud lingid Veebiversioon: http://go.microsoft.com/fwlink/?LinkId=821845 Get-Event Uus sündmus Register-EngineEvent Register-WmiEvent Eemaldamise sündmus Unregister-Event Wait-Event Lõpuks lisa PS lähtekood:
Turistid, kui soovite näha selle postituse peidetud sisu, palun Vastuse
|