【问题标题】:PHP exec to change Windows password with IISPHP exec 使用 IIS 更改 Windows 密码
【发布时间】:2011-11-10 11:52:50
【问题描述】:

是否允许 PHP 在带有 IIS 的 Windows 7 上运行“exec (“net user Jason 123”)?我已经让运行我的网站的 appPool 使用 Admin 用户运行,并且该网站设置为使用管理员用户......所以它应该有完整的权限?在测试中我看到两个绿色勾号。但由于某种原因它仍然不会更改密码,无论如何我可以测试看看问题是什么?或者有人知道我该怎么做吗?

【问题讨论】:

  • 它在不同的网络服务器上工作,虽然我忘记了那个服务器的名称是什么,我更喜欢使用 IIS

标签: php windows passwords cmd exec


【解决方案1】:

在 Windows 服务器上,您可以使用 php's COM/.NET extension,这使得 IADsUser::ChangePassword method 可用于您的脚本。

try {
    //$user = new COM("WinNT://./volker,user");
    $user = new COM("WinNT://domainname/accountname,user");
    $user->ChangePassword('oldpass', 'newpass');
}
catch(com_exception $ex) {
    var_dump($ex);
    die('no no no');
}

【讨论】:

  • 我正在运行 Windows 7 Ultimate x64 的 IIS,所以我不在域上...这还能用吗?
  • 如果只是在我的独立 Windows7 专业 x64 笔记本上测试它并且它工作正常。但是由于您必须将用户名插入到new COM 的字符串中,因此您应该四处寻找有效的用户名的过滤/转义函数。
  • 对不起,我有点混淆了: $user = new COM("WinNT://domainname/accountname,user");如果我在名为“Russell-Server”的计算机上有一个密码为“123”的帐户“Jason”......那会去哪里? “用户”在引用的行中让我感到困惑
  • 如果该脚本在Russell-Serve 上执行,那将是$user = new COM("WinNT://./Jason,user");,因为. 代表local machine
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
相关资源
最近更新 更多