Hi,
I managed to get the test ASPX page I was creating working which can show services and their state.
The only issue I'm facing now is that when I type in a username to search and click search the page is supposed to execute the powershell script to Import the AD module and search based on what is input as the username.
Below is my Default.aspx.cs page code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Management.Automation;
using System.Text;
namespace PowerShellExecution
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ExecuteCode_Click(object sender, EventArgs e)
{
// Clean the Result TextBox
ResultBox.Text = string.Empty;
// Initialize PowerShell engine
var shell = PowerShell.Create();
// Add the script to the PowerShell object
shell.Commands.AddScript(Input.Text);
shell.Commands.AddCommand("Import-Module").AddArgument("ActiveDirectory");
shell.Invoke();
shell.Commands.AddScript(Input.Text);shell.Commands.AddScript("C:\\Temp\\Test.ps1");
// Execute the script
var results = shell.Invoke();
// display results, with BaseObject converted to string
// Note : use |out-string for console-like output
if (results.Count > 0)
{
// We use a string builder ton create our result text
var builder = new StringBuilder();
foreach (var psObject in results)
{
// Convert the Base Object to a string and append it to the string builder.
// Add \r\n for line breaks
builder.Append(psObject.BaseObject.ToString() + "\r\n");
}
// Encode the string in HTML (prevent security issue with 'dangerous' caracters like < >
ResultBox.Text = Server.HtmlEncode(builder.ToString());
}
}
}
}
Here is my Powershell Script:
$UserPrompt = Read-Host "Enter Username"
Get-ADUser $UserPrompt * | Select Name,SamAccountName
Am I completely missing something?
Thanks