alissonpelizaro/ssh_powershell

远程 Powershell SSH 访问

1.1 2019-09-30 18:33 UTC

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);