Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python说它正在使用提升的访问权限运行,但它仍然返回一个错误?_Python_Subprocess - Fatal编程技术网

Python说它正在使用提升的访问权限运行,但它仍然返回一个错误?

Python说它正在使用提升的访问权限运行,但它仍然返回一个错误?,python,subprocess,Python,Subprocess,我最近尝试创建一个脚本来跟踪传出的TCP连接,但在尝试运行TCPView.exe时遇到错误。下面的脚本应授予提升的访问权限,但仍返回以下内容:OSError:[WinError 740]请求的操作需要提升。我认为这是因为它授予python提升访问权限,而不是TCPView。仍然不知道如何解决这个问题 from subprocess import Popen, PIPE import sys import os import subprocess import sys import win32co

我最近尝试创建一个脚本来跟踪传出的TCP连接,但在尝试运行TCPView.exe时遇到错误。下面的脚本应授予提升的访问权限,但仍返回以下内容:
OSError:[WinError 740]
请求的操作需要提升。我认为这是因为它授予
python
提升访问权限,而不是
TCPView
。仍然不知道如何解决这个问题

from subprocess import Popen, PIPE
import sys
import os
import subprocess
import sys
import win32com.shell.shell as shell



def get_tcp_conns():
    process = Popen([r"C:\Users\PC\Downloads\TCPView\Tcpview.exe"], stdout=PIPE)
    for line in iter(process.stdout.readline, b''):
        print(line)  # Do whatever here


ASADMIN = 'asadmin'

if sys.argv[-1] != ASADMIN:
    script = os.path.abspath(sys.argv[0])
    params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
    shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
    get_tcp_conns()

    
with open("somefilename.txt", "w") as out:
    print(out, "i am root")
    get_tcp_conns()

而不是这个:

process = Popen([r"C:\Users\PC\Downloads\TCPView\Tcpview.exe"], stdout=PIPE)
process = Popen([r"C:\Users\PC\Downloads\TCPView\Tcpview.exe"], stdout=PIPE, shell=True)
试试这个:

process = Popen([r"C:\Users\PC\Downloads\TCPView\Tcpview.exe"], stdout=PIPE)
process = Popen([r"C:\Users\PC\Downloads\TCPView\Tcpview.exe"], stdout=PIPE, shell=True)
即,将
shell
参数设置为
True