我目前正在从事一个小型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命令获取的结果。
答案 0 :(得分: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服务器的用户就是将要调用脚本的用户,并且应该具有执行脚本命令所需的权限。