【问题标题】:How to POST Powershell output in Django?如何在 Django 中发布 Powershell 输出?
【发布时间】:2019-07-09 00:16:29
【问题描述】:

我目前正在处理一个小型 Django 项目。我已经为例如编写了一些 powershell 脚本。获取活动目录用户并想要设置一个 Django 应用程序,它允许我发布我的 powershell 脚本的输出

这是我的 cmdlet 和输出 -

命令 -

Get-OrgUser -eNumber 123456   

输出 -

FullName               : Surname, Firstname
eNumber                : 123456
PasswordExpired        : False
LastBadPasswordAttempt : 10/01/2019 12:16:28
LastLogonDate          : 13/02/2019 12:59:58
LockedOut              : UnLocked
LockoutTime            : 0
PasswordLastSet        : 17/01/2019 11:52:49

我的 Django 应用程序应该允许用户输入员工编号并显示它从 Powershell 命令返回的结果。

【问题讨论】:

标签: python django powershell


【解决方案1】:

n.b..,不推荐您尝试执行的操作,因为您的 django 服务器必须以有权运行可以访问您的活动目录的命令的用户身份运行。通常,由于您的 Web 服务器对某些用户可用,因此您希望通过创建特定的应用程序用户来隔离它。也就是说,一旦你准备好脚本并在你的 django 项目中,你可以使用普通的 python 来运行你的脚本并使用标准视图在 django 中返回结果:


def my_view(request):
    import subprocess
    handle = subprocess.Popen([
        'powershell.exe',
        'script.ps1',
    ], stdout=subprocess.PIPE)
    output = handle.stdout.read().decode('utf-8')
    return HttpResponse(output)    

无论如何,关于 powershell 的一般规则都适用于此。如果您的服务器设置了ExecutionPolicy,则您的脚本必须签名,否则您必须更新服务器上的ExecutionPolicy 以允许未签名的脚本运行。运行您的 django 服务器的用户将调用脚本,并且应该具有执行脚本命令所需的权限。

【讨论】:

    猜你喜欢
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2018-11-15
    • 2012-05-10
    相关资源
    最近更新 更多