Avatar billede ducks Nybegynder
12. marts 2006 - 04:56 Der er 16 kommentarer og
1 løsning

PHP og Windows Schedule Task

Er det muligt at tilføje, slette og se Windows Schedule Tasks fra PHP? Det er min egen server så, hvis der kræves nogle ekstra komponenter, så er det ikke et problem.
Avatar billede Slettet bruger
12. marts 2006 - 07:07 #1
Du kan overveje at kigge på WSH (Windows Scripting Host http://www.winguides.com/scripting/) og så tilgå det via PHP COM.
Avatar billede jakobdo Ekspert
12. marts 2006 - 08:43 #2
Avatar billede ducks Nybegynder
12. marts 2006 - 13:32 #3
Hvor finder jeg noget om PHP COM?
Avatar billede jakobdo Ekspert
12. marts 2006 - 13:35 #4
Avatar billede ducks Nybegynder
12. marts 2006 - 13:45 #5
Jeg har gemt det i en ActiveX, der hedder Project1.dll for nemhedens skyld, skal jeg så bare hente det ved:

<?php
  $Object = new COM("Project1.dll");
  $Object->Create();
?>

For at køre den her:

Function Create()
  strComputer = "."
  Set objWMIService = GetObject("winmgmts:" _
      & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
  errJobCreated = objNewJob.Create _
      ("Notepad.exe", "********123000.000000-420", _
          True , 1 OR 4 OR 16, , , JobID)
  Wscript.Echo errJobCreated
End Function
Avatar billede jakobdo Ekspert
12. marts 2006 - 13:48 #6
Om du skal, det er jo et forsøg værd...
Jeg har ikke selv arbejdet med com-objekter før.
Måske kryptos kan byde ind?
Avatar billede ducks Nybegynder
12. marts 2006 - 13:51 #7
Det er ihvertfald ikke lige sådan, for Apache går ned så :(
Avatar billede coderdk Praktikant
12. marts 2006 - 14:01 #8
Har du prøvet noget i stil med:

$wmi = new COM("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2");
$newJob = $wmi->Get("Win32_ScheduledJob");
$result = $newJob->Create("notepad.exe", "********123000.000000-420", true , 1 | 4 | 16, , null, $jobid);

?

Har ingen idé om det virker :)
Avatar billede coderdk Praktikant
12. marts 2006 - 14:02 #9
$result = $newJob->Create("notepad.exe", "********123000.000000-420", true , 1 | 4 | 16, , null, $jobid);

skal nok være:

$result = $newJob->Create("notepad.exe", "********123000.000000-420", true , 1 | 4 | 16, null, null, $jobid);

Muligvis skal de to null's være 0 eller ""
Avatar billede ducks Nybegynder
12. marts 2006 - 14:04 #10
Det skal bare sættes ind i sin egen PHP fil uden brug komponenter? For Apache crasher stadig når jeg kører det :(
Avatar billede coderdk Praktikant
12. marts 2006 - 14:08 #11
Ja, det var meningen - Ok, så er det nok noget med parametrene - Det er sq ikke godt at vide :) Surt!
Avatar billede ducks Nybegynder
12. marts 2006 - 14:09 #12
$wmi = new COM("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2");

Udkommenterer jeg de 2 nederste, crasher den stadig ved den linie.
Avatar billede ducks Nybegynder
12. marts 2006 - 14:10 #13
Nå, det samme sker ved begge de 2 andre
Avatar billede jakobdo Ekspert
12. marts 2006 - 14:30 #14
fandt dette eksempel på php.net:

<?php
$hostname = ".";

$wmi = new COM("WinMgmts:{impersonationLevel=impersonate}
//{$hostname}/root/cimv2");

  $cpus = $wmi->ExecQuery("Select * from Win32_Processor");

  foreach ($cpus as $cpu)
  {
  echo trim($cpu->Name)." {$cpu->MaxClockSpeed}MHz {$cpu->LoadPercentage}%\n";
  }
?>

Det er ikke til task schedule, men bare for at teste om du kan forbinde til WMI.
Avatar billede ducks Nybegynder
12. marts 2006 - 14:51 #15
Apache går ned igen
Avatar billede ducks Nybegynder
12. marts 2006 - 14:55 #16
Nå, man kan ikke engang sætte samme program til at schedule på flere forskellige tidspunkter med forskellige parametre hver gang, så jeg må nok blive nødt til at lave mit eget lille scheduler.

:(
Avatar billede ducks Nybegynder
20. april 2006 - 19:34 #17
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester