https://github.com/alissonpelizaro/ssh-powershell
Aplicação em PHP pronta para realizar comando powershell em um servidor Windows remotamente a partir de um Linux
https://github.com/alissonpelizaro/ssh-powershell
Last synced: about 2 months ago
JSON representation
Aplicação em PHP pronta para realizar comando powershell em um servidor Windows remotamente a partir de um Linux
- Host: GitHub
- URL: https://github.com/alissonpelizaro/ssh-powershell
- Owner: alissonpelizaro
- Created: 2019-08-30T14:25:40.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-06T12:18:12.000Z (about 1 year ago)
- Last Synced: 2025-03-27T13:21:22.680Z (2 months ago)
- Language: PHP
- Homepage:
- Size: 24.4 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SSH_Powershell
Aplicação em PHP pronta para realizar comandos powershell em um servidor Windows remotamente a partir de um Servidor Linux.## Requisitos
* Servidor Windows precisa ter o serviço SSH habilitado
* PHP >= 5.3.3## Instalação
```
composer require alissonpelizaro/ssh_powershell
```## Dependências
* phpseclib/phpseclib >= 2.0.21## Executar em CLI
(parâmetro "-d" habilita DEBUG-MODE)
```
php service.php -d
```## Executar em browser
```php
require __DIR__.'/core.php';$host = "host_remoto";
$user = "usuario";
$pass = "senha";$ssh = new SSH_Conn($host, $user, $pass, $debug);
$powershell = new PowerShell($ssh);
```## Exemplos de comandos
```php
//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');
```## Utilização de LOG
Por permitir ser executado em CLI e em alguns casos de forma não assistida, a melhor forma de monitoração é o LOG. A aplicação já salva todos os comandos em LOG no arquivo `ssh.log`. Para setar um log adicional basta chamar o seguinte método estático:`Log::create('Descrição do log', {true para log de erro}, {true para matar a aplicação após regitro});`
Exemplos:
```php
//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);
```## Comandos PowerShell
### getUsers()
Trás um array com todos os usuários do servidor.
```php
$users = $powershell->getUsers();
```### searchUser()
Procura usuários com base nos filtros passados
```php
$users = $powershell->searchUser('HomePhone', '554130304545');
```### getUser()
Pega dados de um usuário específico de acordo com seu CN
```php
$user = $powershell->getUser('alisson');
```### exec()
Executa qualquer comando powershell passado como parâmetro
```php
$comando = $powershell->exec('powershell Get-ADuser joao.silva -properties *');
```### resetPassword()
Troca a senha de acesso de um usuário
```php
$powershell->resetPassword('alisson', 'nova$enha123');
```### askNewPassword()
Define pedido de nova senha no próximo logon (verdadeiro ou falso)
```php
$powershell->askNewPassword('alisson', true);
```### setExpiredPass()
Seta a configuração "Senha nunca expira" de um usuário (verdadeiro ou falso)
```php
$powershell->setExpiredPass('alisson', true);
```