运行powershell计划任务信息请求没有管理员权限

时间:2014-01-21 09:52:17

标签: php powershell

嘿伙计们我写了一个小的powershell脚本,它输出有关Json格式的所有计划任务的信息。这个信息我用于一个小网站。这是我的powershell脚本:

$servername = "localhost"
$schedule = new-object -com("Schedule.Service")
$schedule.connect($servername)
$tasks = $schedule.getfolder("\").gettasks(0)
$tasks |select name, lasttaskresult, lastruntime, enabled, nextruntime | ConvertTo-Json > C:\xampp\htdocs\batch_files\test.txt

我正在使用此行运行PHP中的ps1文件:

$output = shell_exec('powershell.exe -command C:\\xampp\\htdocs\\batch_files\\stask_query.ps1');

但这不起作用。当我从powershell控制台运行脚本时,我收到拒绝访问错误。当我在以Run as admin开头的控制台中运行它时,它正在运行。我怎么能这样做?

我尝试将此apess服务用户添加到powershell,并拥有此行的完全权限:

Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

但它没有帮助。

编辑:我注意到我不需要$servername更新的脚本:

$schedule = new-object -com("Schedule.Service")
$schedule.connect()
$tasks = $schedule.getfolder("\").gettasks(0)
$tasks |select name, lasttaskresult, lastruntime, enabled, nextruntime | ConvertTo-Json > C:\xampp\htdocs\batch_files\test.txt

1 个答案:

答案 0 :(得分:0)

我使用以下命令:

Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

我添加了具有完全权限的apache服务用户。

比我需要运行:

Set-ExecutionPolicy Unrestricted

在x86 powershell中。系统在64位系统上运行,服务在32位模式下运行powershell,我只在64位模式下更改了执行策略。