Я хочу создать 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>
Я очень ценю любую помощь