嘿,我编写了一个小的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:xampphtdocsbatch_filestest.txt
我正在使用此行中的PHP运行ps1
文件:
$output = shell_exec('powershell.exe -command C:\xampp\htdocs\batch_files\stask_query.ps1');
但这不起作用。当我从PowerShell控制台运行脚本时,我会收到访问拒绝的错误。当我以Run as admin
开始运行它时,它正在工作。我该如何完成?
我试图将Apache服务用户添加到具有此行的全部权利的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:xampphtdocsbatch_filestest.txt
我让它与以下命令一起使用:
Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI
在那里我添加了具有全部权利的Apache服务用户。
比我需要运行:
Set-ExecutionPolicy Unrestricted
在X86 PowerShell中。该系统在64位系统上运行,该服务以32位模式运行PowerShell,我仅在64位模式下更改了执行策略。