Добавление dll System.Management.Automation в .aspx.cs - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть скрипт Powershell, который я хочу запустить, но мне нужно сослаться на System.Management.Automation. Я сделал это с помощью VS 2018 с помощью диспетчера NuGet. Тем не менее, я хочу сделать это, не используя VS и весь другой автоматически сгенерированный код.

Так что в этом случае у меня есть IIS-сервер, на котором живет простой код .aspx и .aspx.cs. Идея в том, что когда пользователь отправляет форму, скрипт PS запускается. Как я могу ссылаться на .dll в .aspx.cs? Нужно ли добавлять .dll в папку System32 \ inetsrv? Или мне нужна папка web.config, сообщающая .cs, где находятся дополнительные файлы .dll?

Заранее спасибо.

My .aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="default.aspx.cs" Inherits="StrategicMapping.View"%>
<html>
<head>
    <meta charset=utf-8 />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.5">
        <title>Title</title>
</head>
<body>
    <form action="https://server/default.aspx/ReadLinksDatabase" method="post">
        <input type="submit"/>
    </form>

</body>
</html>

My. aspx.cs

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;


namespace StrategicMapping {

    public partial class View : System.Web.UI.Page {

        [System.Web.Services.WebMethod]
        public static void ReadLinksDatabase()
        {
            // Initialize PowerShell engine
            var shell = PowerShell.Create();
            // Add the script to the PowerShell object
            shell.Commands.AddScript("powershell.ps1");
            // Execute the script
            var results = shell.Invoke();
            return;
        }


    }
}
...