【问题标题】:Passing the shell script through the function通过函数传递shell脚本
【发布时间】:2019-10-16 12:47:30
【问题描述】:

我正在创建一个应用程序来通过 MVC 使用 Power Shell 脚本交互来管理广告组。我创建了一个函数,它将返回值以填充 HTML 的剃刀组件。但是,当我从基本目录位置传递 shell 脚本时,组件没有被值填充。

我尝试使用 AppDomain.CurrentDomain.BaseDirectory 设置脚本的路径,没有生成错误,也没有得到任何输出。

** 剃刀代码 **

@functions {

    public string PowerShellExecutor(string script) {
        var shell = PowerShell.Create();
        string outString = "";
        shell.Commands.AddScript(script);
        var results = shell.Invoke();
        if (results.Count>0)
        {
            var builder = new StringBuilder();
            foreach (var psObj in results)
            {
                builder.Append(psObj.BaseObject.ToString() + "\r\n");

            }
            outString = Server.HtmlEncode(builder.ToString());
        }
        return outString;
    }


<div class="row">
    <div class="col-md-12">
        @Html.TextBox("txtDir", @PowerShellExecutor(AppDomain.CurrentDomain.BaseDirectory.ToString()+ "Shell\\Get-StewardName.ps1"), new { @class = "form-control" })
            @*@Html.TextBox("txtDirectory", @PowerShellExecutor("$env:USERDNSDOMAIN") , new { @class = "form-control"})*@
     </div>
 </div>

** Powershell 脚本 **

    $StewardName = Get-ADUser $env:USERNAME -Properties DisplayName | Select -ExpandProperty DisplayName
    $EmployeeNumber = Get-ADUser $env:UserName -Properties EmployeeNumber| Select -ExpandProperty EmployeeNumber
    Write-Output "Steward: $StewardName ($EmployeeNumber)"

当我输入环境变量时,我得到了我所属的域。当我通过脚本时,它应该会获得一些价值。

【问题讨论】:

  • 不相关:使用 $ADUser=Get-ADUser $env:username -Properties DisplayName,EmployeeNumber; Write-Output "StewardName: $($ADUser.DisplayName) ($($ADUser.EmployeeNumber))" 将您的广告呼叫减少一半
  • 不应该是"\\Shell\\Get-StewardName.ps1"吗?
  • Nops 仍然无法正常工作...!我认为它与变量有关,这就是它无法获取值的原因。

标签: asp.net-mvc powershell razor active-directory


【解决方案1】:

好的,因此将 AddScript() 替换为 AddCommand() 会执行脚本,但是在使用环境变量获取数据时会引发 command not found 异常。

【讨论】:

    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2011-10-10
    • 2015-10-09
    • 2015-12-20
    • 2017-04-03
    • 2014-04-02
    相关资源
    最近更新 更多