Объедините Powershell, AD и PHP - PullRequest
       3

Объедините Powershell, AD и PHP

0 голосов
/ 04 октября 2019

Я хочу создать PHP-скрипт, который запускает скрипт PowerShell на основе полученных им POST-DATA.

Пример ссылки должен быть таким: localhost / query / index.php? GetUser = Имя пользователя

Это должно привести к тому, что PowerShell запустит следующий скрипт с заменой имени пользователя на полученное в POST.

Get-ADUser -Identity Username -Properties sAMAccountName,userPrincipalName,GivenName,Surname,title,company,department,co,proxyAddresses,mail,mobile,telephoneNumber,whenCreated,whenChanged,employeeNumber,extensionAttribute1 | Select-Object sAMAccountName,userPrincipalName,GivenName,Surname,title,company,department,co,proxyAddresses,mail,mobile,telephoneNumber,whenCreated,whenChanged,employeeNumber,extensionAttribute1,"End of userinfo" | Out-File -FilePath C:\xampp\htdocs\userinfo.txt

Он может быть сохранен как .txt в другом месте, но предпочтительно с результатом втот же PHP скриптМне удалось запустить пользовательские сценарии из PHP с использованием приведенного ниже кода, но затем PHP должен либо сначала создать сценарий, например «Temp.ps1», с правильным именем пользователя для блокировки на основе имени пользователя в POST, а затем запустить сценарий. а затем удалите сценарий

<?PHP
echo Shell_Exec ('powershell.exe -executionpolicy bypass -NoProfile -File ".\temp.ps1"');
?>

Поэтому, основываясь на полученном ответе, я попытался сделать его как можно более простым, и из приведенного ниже кода сценарий / команда PowerShell не использует определенную мной переменную. Переменная видна в обычном эхо.

Окончательное решение, благодаря ADyson

<!DOCTYPE html>
<html>
<head>
<title>Query User</title>
</head>
<body>

<?PHP
$username = $_GET['username'];
echo Shell_Exec ('powershell.exe -executionpolicy bypass -NoProfile -Command "Get-ADUser -Identity '.$username.' -Properties sAMAccountName,userPrincipalName,GivenName,Surname,title,company,department,co,proxyAddresses,mail,mobile,telephoneNumber,whenCreated,whenChanged,employeeNumber,extensionAttribute1 | Select-Object sAMAccountName,userPrincipalName,GivenName,Surname,title,company,department,co,proxyAddresses,mail,mobile,telephoneNumber,whenCreated,whenChanged,employeeNumber,extensionAttribute1"');
?>

</body>
</html>

Я очень ценю любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...