在python中使用powershell作为管理员

在python中使用powershell作为管理员,python,python-3.x,shell,powershell,subprocess,Python,Python 3.x,Shell,Powershell,Subprocess,因此,我有一个正在进行的项目,我需要做的一件事是在后台以管理员的身份在PowerShell中运行“netstat-nb”命令,并将结果接收到python程序。 我一直在网上寻找解决方案,但从未找到一个有效的解决方案。我很高兴能得到一些帮助 "netstat -nb" 如果要执行netstat命令,可以直接从Python执行。但您需要以管理员身份运行Python脚本: import subprocess subprocess.call("netstat -nb") 如果需要访问Python脚

因此,我有一个正在进行的项目,我需要做的一件事是在后台以管理员的身份在PowerShell中运行“netstat-nb”命令,并将结果接收到python程序。 我一直在网上寻找解决方案,但从未找到一个有效的解决方案。我很高兴能得到一些帮助

"netstat -nb"

如果要执行netstat命令,可以直接从Python执行。但您需要以管理员身份运行Python脚本:

import subprocess 
subprocess.call("netstat -nb")
如果需要访问Python脚本中的powershell netstat值,则可以在powershell中设置变量并将其传递给Python脚本。 以下是powershell命令:

$con=netstat -nb
& python.exe "FullPath of Python script file"-p $con
Python脚本:

import sys
print(sys.argv[5])

for conn in sys.argv:
   print(conn)
这里我们将循环传递的参数(netstat输出)并显示。因此,您将powershell命令结果传递给Python脚本并在那里显示它。 将显示以下列:


您可以使用子流程库。关于子流程模块,您可以查看文档以了解更多详细信息和功能。它帮助你解决你的问题。您可以使用subprocess.Popen或subprocess.call,也可以使用subprocess.check_output从另一个脚本获取输出

您可以像下面的代码一样使用它:

import subprocess
import sys
output = subprocess.Popen(['python','sample.py','Hello'],stdout=subprocess.PIPE).communicate()
print(output)
sample.py脚本的内部是:

import sys
my_message = "This is desired output. " + sys.argv[1]
print(my_message)
在您的情况下,您可以将Popen用作:

subprocess.Popen(['netstat','-nb'],stdout=subprocess.PIPE).communicate()

我正在通过cmd运行.py程序