用php执行powershell

时间:2013-08-06 12:31:55

标签: php powershell wmi powershell-remoting

我有以下脚本来获取远程计算机的服务状态并将其显示在网页上(我安装了PowerShell v3.0):

<html !DOCTYPE>
<head>
</head>
<body>

<?php 
    $output = exec('powershell.exe "(Get-Service -computername server_name wudfsvc).Status"');
    echo $output  
?>

</body>
</html>

当我在本地检查服务状态(没有-computername参数)时,这是有效的,当我在命令行中运行此脚本时,它可以工作。我认为,问题是,当我在php中运行它时,它没有足够的权限来获取远程计算机上的服务状态。我尝试使用“Get-WMIObject -class win32_service”而不是Get-Service,但我只发现这个例子只提供没有密码的登录:

Get-WmiObject Win32_Service -Credential FABRIKAM\administrator Computer Fabrikam

我需要在没有用户交互的情况下自动获取远程计算机上的服务状态。有可能吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

PHP使用本地IIS服务帐户进行交互。我通常会为本地IUSR组分配权限。