alissonpelizaro / ssh_powershell
远程 Powershell SSH 访问
1.1
2019-09-30 18:33 UTC
Requires
- phpseclib/phpseclib: ~2.0
This package is auto-updated.
Last update: 2024-09-06 13:35:06 UTC
README
适用于 PHP 的应用程序,可在 Linux 服务器上远程执行 Windows 服务器上的 PowerShell 命令。
要求
- Windows 服务器需要启用 SSH 服务
- PHP >= 5.3.3
安装
composer require alissonpelizaro/ssh_powershell
依赖关系
- phpseclib/phpseclib >= 2.0.21
在 CLI 中执行
(参数 "-d" 启用 DEBUG 模式)
php service.php -d
在浏览器中执行
require __DIR__.'/core.php'; $host = "host_remoto"; $user = "usuario"; $pass = "senha"; $ssh = new SSH_Conn($host, $user, $pass, $debug); $powershell = new PowerShell($ssh);
命令示例
//Exemplo para obter a lista de todos os usuários print_r($powershell->getUsers()); //Exemplo para procurar um usuário especifico print_r($powershell->getUser('alisson')); //Exemplo para procurar um usuário print_r($powershell->searchUser('HomePhone', '4130305525')); //Exemplo para resetar a senha de um usuário $powershell->resetPassword('alisson', 'novaSenha123'); //Exemplo para executar qualquer comando powershell $powershell->exec('powershell Set-ADUser -Identity alisson -PasswordNeverExpires $true');
使用 LOG
由于可以以 CLI 和某些情况下的非交互方式执行,最佳监控方式是 LOG。应用程序已将所有命令保存到 LOG 文件 ssh.log
中。要设置附加日志,请调用以下静态方法
Log::create('日志描述', {true para log de erro}, {true para matar a aplicação após regitro});
示例
//Grava LOG como informativo Log::create('Processo executado com sucesso'); //Grava LOG como erro Log::create('Erro ao executar comando', true); //Grava LOG como erro e mata a aplicação Log::create('Erro ao executar o comando', true, true); //Grava LOG como informativo e mata a aplicação Log::create('Comando executado', false, true);
PowerShell 命令
getUsers()
返回服务器上所有用户的数组。
$users = $powershell->getUsers();
searchUser()
根据传入的过滤器搜索用户
$users = $powershell->searchUser('HomePhone', '554130304545');
getUser()
根据 CN 获取特定用户的详细信息
$user = $powershell->getUser('alisson');
exec()
执行作为参数传递的任何 PowerShell 命令
$comando = $powershell->exec('powershell Get-ADuser joao.silva -properties *');
resetPassword()
更改用户的访问密码
$powershell->resetPassword('alisson', 'nova$enha123');
askNewPassword()
在下次登录时定义请求新密码(true 或 false)
$powershell->askNewPassword('alisson', true);
setExpiredPass()
设置用户的“密码永不失效”配置(true 或 false)
$powershell->setExpiredPass('alisson', true);