Как создать веб-сайт IIS, который выполняет функцию PowerShell и показывает ее вывод? - PullRequest
0 голосов
/ 16 апреля 2020

Я создал функцию PowerShell (называемую Get-FileInUse), которая будет анализировать наш сервер данных для получения списка известных файлов. Функция возвращает ($global:result как массив), какие файлы используются и кем.

Я хотел бы разместить внутренний веб-сайт, который показывает (при доступе к нему или при нажатии кнопки на сайте) вывод этой функции. Скажем внутренний сайт inusefiles.corp.com. Не беспокойтесь о привязках и записях DNS, я справлюсь с этим.

Я следовал онлайн-уроку ( этот ), но трудно понять, что происходит.

Это два моих вопроса:

  1. Как добавить свой скрипт в файл aspx.cs? Я хотел бы запустить скрипт при загрузке стр. Мне кажется логичным поместить его в protected void Page_Load(object sender, EventArgs e).
  2. Моя функция возвращает переменную $result. Как мне показать это, например. текстовое поле?

Примечание. У меня нет опыта работы с ASP .NET / Web Forms. PowerShell для меня не проблема.

1 Ответ

1 голос
/ 17 апреля 2020

Хорошо, нашел его:

Под protected void Page_Load(object sender, EventArgs e) пришли:

string scriptOutput = "";
using (var ps = System.Management.Automation.PowerShell.Create(System.Management.Automation.Runspaces.InitialSessionState.CreateDefault()))
{
    ps.AddStatement().AddScript("Get-FileInUse").AddCommand("Out-String");

    foreach (var res in ps.Invoke())
    {
        scriptOutput = string.Join(Environment.NewLine, scriptOutput, res);
    }
}
Result.Text = scriptOutput;

В то время как мой Default.aspx содержит текстовое поле ASP с ID = "Результат":

<asp:TextBox ID="Result" TextMode="MultiLine" Width="50%" Height="300" runat="server">
</asp:TextBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...