从 PHP 执行 Powershell 脚本

2024-03-20

我正在尝试从 PHP 执行 powershell 脚本,但它似乎不起作用。

脚本“newEvent.ps1”在 Exchange 服务器上创建一个事件。

$psPath = "powershell.exe";
$psDIR = "C:\\wamp\\www\\ant\\assets\\ps\\";
$psScript = "newEvent.ps1";
$runScript = $psDIR. $psScript;
$runCMD = $psPath." ".$runScript." 2>&1"; 

echo "\$psPath  $psPath <br>";
echo "\$psDIR  $psDIR <br>";
echo "\$psScript  $psScript <br>";
echo "\$runScript  $runScript <br>";
echo "\$runCMD   $runCMD  <br>";

exec( $runCMD,$out,$ret);

echo "<pre>";
print_r($out);
print_r($ret);
echo "</pre>";

它输出:

$psPath powershell.exe
$psDIR C:\wamp\www\ant\assets\ps\
$psScript newEvent.ps1
$runScript C:\wamp\www\ant\assets\ps\newEvent.ps1
$runCMD powershell.exe C:\wamp\www\ant\assets\ps\newEvent.ps1 2>&1

Array
(
    [0] => File C:\wamp\www\ant\assets\ps\newEvent.ps1 cannot be loaded because the execut
    [1] => ion of scripts is disabled on this system. Please see "get-help about_signing"
    [2] => for more details.
    [3] => At line:1 char:39
    [4] => + C:\wamp\www\ant\assets\ps\newEvent.ps1 <<<<
    [5] =>     + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    [6] =>     + FullyQualifiedErrorId : RuntimeException
    [7] => 
)

如果我跑powershell.exe C:\wamp\www\ant\assets\ps\newEvent.ps1在命令行上,它工作得很好。

这是我第一次尝试这样的事情。我跑了Set-ExecutionPolicy RemoteSigned -Scope LocalMachine但它仍然给我同样的错误。 事实上我跑了Set-ExecutionPolicy unristricted,但还是一样。


看起来您的命令被单引号括起来。我想如果你删除它们,你的命令应该运行。

shell_exec返回您运行的命令的输出。要进一步诊断,请将输出存储在变量中,然后将其打印出来:

$output = shell_exec($runCMD);
echo '<pre>' . $output . '</pre>';

确保启用运行脚本。该功能默认处于关闭状态。您必须在要运行 PowerShell 脚本的每台计算机上启用脚本执行。跑步about help_signing了解更多信息。

微软建议运行Set-ExecutionPolicy RemoteSigned -Scope LocalMachine。这允许计算机上的所有用户帐户毫无问题地运行本地脚本,但需要确认才能运行从互联网下载的脚本。这需要在管理提示符下运行。如果您运行的是 64 位操作系统,则需要从 64 位和 32 位 shell 执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 PHP 执行 Powershell 脚本 的相关文章

  • PHP函数:查找参数的变量名和函数调用行号

    我想做这样的事情来简化日志操作 知道我应该投入什么吗 1 and 2 function log var var line 1 var name 2 line filepath log date Y m d txt message line
  • 使用 GD lib 过滤器标准化 CSS 过滤器

    我想让用户拖动范围滑块并通过实时预览 CSS 滤镜 调整图像的亮度和对比度 然后使用 GD 库保存调整 但是 我似乎无法从 CSS 过滤器和 GD lib 亮度和对比度过滤器获得相同的结果 我的 CSS 过滤器范围为 50 150 其中 1
  • 从 Yii2 中的联结表检索数据

    我试图从 Yii2 中的连接表获取数据无需额外查询 我有 2 个模型 用户 组 通过连接表 user group 关联 在 user group 表中 我想存储此关系的额外数据 管理标志 将数据添加到连接表的最佳方法是什么 link 方法接
  • PHP MySQL 查询带有 %s 和 %d

    SELECT COUNT AS test FROM s WHERE id d AND tmp mail lt gt 什么是 s and d for 这些是使用的格式符号 例如经过sprintf 例子 Output SELECT COUNT
  • YouTube 数据 api 未按 viewCount 排序

    我正在尝试按 viewCount 从高到低排序 YouTube 频道视频 但结果并不是按最大观看次数排序 以下是我正在使用的 API https www googleapis com youtube v3 search key api ke
  • PHP:如何检查 Guzzle 4 中的超时异常?

    如果请求期间发生错误 Guzzle 会引发异常 不幸的是 似乎没有特定于超时的错误 这对我来说很重要 因为我知道这些错误偶尔会发生 我想重试相应的请求 并且需要能够判断错误是否是由于超时而发生的 来自docs http docs guzzl
  • Symfony 3新建项目报错

    我开始编写有关 Symfony 3 的教程 在使用以下命令创建新项目时遇到问题 php symfony phar new Symfony 我有这个错误 GuzzleHttp Exception RequestException Error
  • 如何在不使用 Firebase 控制台的情况下发送 Firebase 云消息通知?

    我从新的 Google 通知服务开始 Firebase Cloud Messaging 感谢这段代码https github com firebase quickstart android tree master messaging htt
  • Woocommerce 中的欧洲 GDPR 附加结帐验证复选框

    您好 我一直在尝试向我的 Woocommerce 结帐页面添加一个额外的条件复选框 该复选框与条款和条件相同 但包含有关新 GDPR 数据保护 的信息以及指向我的隐私政策的链接 他们必须在方框中打勾才能结帐 我一直在使用从此处找到的各种代码
  • 下拉 24 小时选项值和 12 小时显示

    我需要创建一个时间数组 以便在 HTML 下拉列表中使用 数组键应采用 24 小时格式 值应采用 12 小时制 包含 am 和 pm 在数据库中我想存储 24 小时格式 有没有一种快速的方法来创建数组而不是每小时键入 example 00
  • Powershell XMLDocument保存为无BOM的UTF-8

    我构建了一个 System Xml XmlDocument 类型的 XML 对象 scheme gettype IsPublic IsSerial Name BaseType True False XmlDocument System Xm
  • 在 PHP 中添加分数会产生不同的结果[重复]

    这个问题在这里已经有答案了 可能的重复 PHP float 到 int 类型转换的意外结果 https stackoverflow com questions 3385685 php unexpected result of float t
  • 如何使用 Excel.UriLink.16 更改 Excel URL 的文件关联?

    我正在尝试更改文件关联 以便在另一个浏览器中打开 Excel 单元格中的 URL 根据使用 CMD ftype命令与Excel UriLink 16 我应该能够使用以下命令从 powershell 通过 cmd 执行此操作 To chang
  • 我需要一个 jQuery Autocomplete 使用 ajax 返回 id 和 name 的示例

    我需要一个示例 说明如何编写 jQuery 自动完成代码来填充product id 同时显示调用ajax 页面 remote php 的product name
  • 在 JQuery ui 自动完成中显示图像

    我有一个带有 JQuery ui 自动完成功能的脚本 可以完美运行 有一个显示用户名字和姓氏的搜索过程 但在我的数据库中 还有用户的图片 我想将其显示在带有名字和姓氏的建议中 数据库中pic包含图片url 剧本 function searc
  • 如何使用 PowerShell 查找 CPU 和 RAM 使用情况?

    我试图让 PowerShell 提供 RAM 和 CPU 使用情况 但我无法弄清楚要使用哪个 WMI 类 我的计算机有两个处理器 因此拥有这两个处理器的信息会很有用 您还可以使用 Get Counter cmdlet PowerShell
  • 如何从 PHP 中的字符串创建可能的字符串组合?

    如何从 PHP 中的字符串创建可能的字符串组合 Exp input abc output array 0 gt a 1 gt ab 2 gt abc 3 gt ac 4 gt acb 5 gt b 6 gt ba 7 gt bac 8 gt
  • PHP strtotime() 未返回正确的月份

    由于当前月份 年份是 2012 年 1 月 为什么以下代码返回 2011 年 12 月而不是 2011 年 11 月 echo date F Y strtotime 2 months 如果有影响的话 这是在 PHP 5 3 0 上 要获得您
  • 在 PHP 中设置 HTTP 响应代码(在 Apache 下)

    给出以下两种在 PHP 中设置 HTTP 响应代码的方法 具体来说 在 Apache 下 方法一 http response code 404 方法二 header HTTP 1 0 404 Not Found 我的问题是 除了这个事实之外
  • 如何在PHP中获取div中的所有链接

    我想从另一个网站打开一个页面 并提取一个中的所有链接 href div of class layout 2 2 在此页面中 我如何使用 PHP 来做到这一点 我想复制layout 2 2中的每个链接this https url 网页 这是我

随机推荐

  • xcode swift 如何分割图像?

    我正在使用 Swift 2 0 我想将图像分割成多个部分 我知道这是重复的 但它们的语法很旧 我在更新时遇到问题 update Xcode 8 2 1 斯威夫特 3 0 2 您可以添加此扩展来分割图像 extension UIImage v
  • ng 升级命令将 cli 从 v7 升级到 v8 失败

    用于将 cli 版本从 v7 项目更新到 v8 的 ng Upgrade 命令失败 首先手动尝试升级 cli 也会失败 ng update angular cli 您的全局 Angular CLI 版本 8 0 1 高于您的本地版本 版本
  • sklearn RandomForestClassifier 与 auc 方法中 ROC-AUC 分数的差异

    我分别从 sklearn 的 RandomForestClassifier 和 roc curve auc 方法收到不同的 ROC AUC 分数 以下代码得到了 0 878 的 ROC AUC 即 gs best score def tra
  • 斜杠和 python cmd

    我正在尝试使用 cmd 模块来实现 python cmd 我想自动完成文件 所以我实现了一些方法 但是 我看到 complete put self text line begidx endidx 中的文本参数删除了所有 字符 任何人都知道为
  • 如何将 AsParallel 与 async 和 wait 关键字一起使用?

    我正在查看某人的异步示例代码 并注意到其实现方式存在一些问题 在查看代码时 我想知道使用并行方式循环列表是否比正常循环列表更有效 据我所知 性能上的差异非常小 两者都耗尽了每个处理器 并且完成时间都相同 这是第一种方法 var tasks
  • 启动 python windows 服务可执行文件时出错

    我正在尝试按照指示创建一个 python windows 服务 https www thepythoncorner com 2018 08 how to create a windows service in python https ww
  • 如何增加/减少 x 和 y 刻度标签的字体大小[重复]

    这个问题在这里已经有答案了 我似乎在弄清楚如何增加或减少fontsize使用时的 x 和 y 刻度标签matplotlib 我知道有set xticklabels labels fontdict None minor False kwarg
  • sqlalchemy 连接失败但 cx_oracle 成功

    我正在尝试用 Python 连接到 Oracle 服务器 我在 cx Oracle 中可以正常工作 但是当我尝试使用 sqlalchemy 连接时 它失败了 cx Oracle代码 import cx Oracle import panda
  • 我应该如何使用tiny_mce_popup.js 更新 TinyMCE 插件版本 4?

    TinyMCE4 文档目前很糟糕 我有一个与 Ruby on Rails 兼容的插入图像插件 但它依赖于已弃用的tiny mce popup js 没有关于我应该如何更新插件以规避该文件的使用的信息 TinyMCE 4 弃用旧版本file
  • 删除大文件后 git Push

    我不小心提交了 log test log 但从未推送过它 从那以后我做了一个 git rm 来摆脱它 但是当我尝试推送时 我仍然收到大量数据试图传输 git rm 不应该解决这个问题吗 如果没有 我该如何修复它 不要恢复提交然后推送 因为大
  • 使用数据库中的数据填充 IAuthSession

    因此 我根据此处的示例使用 ServiceStack 创建了一个自定义 CredentialsAuthProvider https github com ServiceStack ServiceStack wiki Authenticati
  • 通过 gganimate 制作动画条形图:view_follow 和 coord_flip 的冲突

    我想创建一个动画条形图gganim包裹 条形图的坐标应通过翻转coord flip 即水平条 和 x 轴应根据条的长度通过view follow 考虑以下示例数据 Create example data df lt data frame o
  • 错误“调用可以抛出,但未标记为‘try’并且错误未被处理”

    这段代码出现错误 调用可以抛出 但没有标记 try 并且错误不被处理 我使用的是 Xcode 7 1 最新的 beta 和 swift 2 0 func checkUserCredentials gt Bool PFUser logInWi
  • 具有多租户的 Spring Batch

    我们如何定义针对多个租户运行的 Spring 批处理作业 我已经设置为每晚针对一个数据库模式按顺序运行一系列作业 当前所有作业都从某个位置读取文件并插入到数据库 批处理配置非常基本 我在其中定义了数据源 事务管理器并将作业存储库映射到它 我
  • MongoDB 多个字段上的唯一索引

    我正在使用 MongoDb 数据库 我需要使多个字段唯一 我需要的是 MongoDb 检查是否组合多个字段的值是唯一的 让我们举一个我需要的例子 如果我在添加索引后按此顺序在数据库中添加以下内容 name paul age 21 name
  • scipy 中的复杂 ODE 系统

    我在求解光学布洛赫方程时遇到困难 该方程是具有复数值的一阶 ODE 系统 我发现 scipy 可以解决这样的系统 但是他们的网页提供的信息太少 我几乎无法理解 我有 8 个耦合一阶 ODE 我应该生成一个如下函数 def derv y co
  • 如何在Java中计算“时间之前”?

    在 Ruby on Rails 中 有一个功能允许您获取任何日期并打印出它是 多久以前 的 例如 8 minutes ago 8 hours ago 8 days ago 8 months ago 8 years ago 在 Java 中是
  • 延长临时的生命周期,适用于块范围聚合,但不能通过“new”;为什么?

    Note This question was originally asked as a comment https stackoverflow com questions 23892018 extending temporarys lif
  • Android Studio 3.6中无法设置SDK路径或下载?

    我在 Windows 10 上安装了 Android Studio 3 6here https developer android com studio下载的 但是当检查 Android Studio 上的 Android SDK 管理器
  • 从 PHP 执行 Powershell 脚本

    我正在尝试从 PHP 执行 powershell 脚本 但它似乎不起作用 脚本 newEvent ps1 在 Exchange 服务器上创建一个事件 psPath powershell exe psDIR C wamp www ant as