Python IIS flask无法运行管理权限命令

Python IIS flask无法运行管理权限命令,python,flask,iis,Python,Flask,Iis,我被困在这个设置几乎一个星期了。希望有人能引导我通过它 设置 我已经安装了一个运行flaskpython代码的IIS服务器。(使用wfastcgi.py) 我已将应用程序池标识配置为我自己的帐户。(管理权限) 我已将此web部署所需的所有文件权限更改为“所有人”-完全控制(读、写、执行)。(我了解安全风险,这是我的暂存环境。) Web服务器运行良好,我已经使用底部代码检查了我的python权限是否为administrator def am_i_admin(): try:

我被困在这个设置几乎一个星期了。希望有人能引导我通过它

设置

  • 我已经安装了一个运行flaskpython代码的IIS服务器。(使用wfastcgi.py)

  • 我已将应用程序池标识配置为我自己的帐户。(管理权限)

  • 我已将此web部署所需的所有文件权限更改为“所有人”-完全控制(读、写、执行)。(我了解安全风险,这是我的暂存环境。)

  • Web服务器运行良好,我已经使用底部代码检查了我的python权限是否为administrator

     def am_i_admin():
         try:
             is_admin = os.getuid() == 0
         except AttributeError:
             is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0
         if is_admin == True:
             return "ADMIN"
         else:
             return "USER"
    
  • 问题陈述

  • 我试图在我的flask IIS服务器上运行管理员priv代码,允许同一网络中的用户执行;比如

     subprocess.run(['ipconfig'], stdout=subprocess.PIPE)
    
     pyautogui.screenshot() #which take a screenshot of the web server and send over to the client.
    
  • 我在本地的jupyter笔记本上运行,上面的功能运行得非常好

  • 但它无法在IIS flask服务器上运行

  • 我还尝试在flask服务器上设置pyautogui(没有IIS的单机版),它成功了

  • IIS服务器有什么问题??或者我需要配置更多的东西。是否有我可以禁用的安全功能

  • 子流程错误消息:

    Error occurred while reading WSGI handler:
    
    Traceback (most recent call last):
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 791, in main
        env, handler = read_wsgi_handler(response.physical_path)
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler
        handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 600, in get_wsgi_handler
        handler = __import__(module_name, fromlist=[name_list[0][0]])
      File ".\my_app.py", line 58, in <module>
        out = os.popen("ipconfig").read()
      File "c:\users\aspnet\anaconda3\lib\os.py", line 990, in popen
        bufsize=buffering)
      File "c:\users\aspnet\anaconda3\lib\subprocess.py", line 753, in __init__
        errread, errwrite) = self._get_handles(stdin, stdout, stderr)
      File "c:\users\aspnet\anaconda3\lib\subprocess.py", line 1090, in _get_handles
        errwrite = _winapi.GetStdHandle(_winapi.STD_ERROR_HANDLE)
    OSError: [WinError 6] The handle is invalid
    
    
    StdOut: 
    
    StdErr: 
    
    Error occurred while reading WSGI handler:
    
    Traceback (most recent call last):
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 791, in main
        env, handler = read_wsgi_handler(response.physical_path)
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler
        handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 600, in get_wsgi_handler
        handler = __import__(module_name, fromlist=[name_list[0][0]])
      File ".\my_app.py", line 45, in <module>
        pyautogui.screenshot()
      File "c:\users\aspnet\anaconda3\lib\site-packages\pyscreeze\__init__.py", line 135, in wrapper
        return wrappedFunction(*args, **kwargs)
      File "c:\users\aspnet\anaconda3\lib\site-packages\pyscreeze\__init__.py", line 427, in _screenshot_win32
        im = ImageGrab.grab()
      File "c:\users\aspnet\anaconda3\lib\site-packages\PIL\ImageGrab.py", line 44, in grab
        include_layered_windows, all_screens
    OSError: screen grab failed
    
    
    StdOut: 
    
    StdErr: 
    
    读取WSGI处理程序时出错: 回溯(最近一次呼叫最后一次): 文件“c:\users\aspnet\anaconda3\lib\site packages\wfastcgi.py”,第791行,主目录 env,handler=read\u wsgi\u handler(response.physical\u路径) 文件“c:\users\aspnet\anaconda3\lib\site packages\wfastcgi.py”,第633行,在read\u wsgi\u处理程序中 handler=get\u wsgi\u handler(os.getenv(“wsgi\u handler”)) 文件“c:\users\aspnet\anaconda3\lib\site packages\wfastcgi.py”,第600行,在get\u wsgi\u处理程序中 handler=\uuuu导入(模块名称,fromlist=[name\u列表[0][0]]) 文件“\my_app.py”,第58行,在 out=os.popen(“ipconfig”).read() 文件“c:\users\aspnet\anaconda3\lib\os.py”,第990行,以popen格式 bufsize=缓冲) 文件“c:\users\aspnet\anaconda3\lib\subprocess.py”,第753行,在\uuu init中__ errread,errwrite)=self.\u获取\u句柄(标准输入、标准输出、标准输出) 文件“c:\users\aspnet\anaconda3\lib\subprocess.py”,第1090行,位于\u get\u句柄中 errwrite=\u winapi.GetStdHandle(\u winapi.STD\u ERROR\u HANDLE) OSError:[WinError 6]句柄无效 标准: 标准: pyautogui错误:

    Error occurred while reading WSGI handler:
    
    Traceback (most recent call last):
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 791, in main
        env, handler = read_wsgi_handler(response.physical_path)
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler
        handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 600, in get_wsgi_handler
        handler = __import__(module_name, fromlist=[name_list[0][0]])
      File ".\my_app.py", line 58, in <module>
        out = os.popen("ipconfig").read()
      File "c:\users\aspnet\anaconda3\lib\os.py", line 990, in popen
        bufsize=buffering)
      File "c:\users\aspnet\anaconda3\lib\subprocess.py", line 753, in __init__
        errread, errwrite) = self._get_handles(stdin, stdout, stderr)
      File "c:\users\aspnet\anaconda3\lib\subprocess.py", line 1090, in _get_handles
        errwrite = _winapi.GetStdHandle(_winapi.STD_ERROR_HANDLE)
    OSError: [WinError 6] The handle is invalid
    
    
    StdOut: 
    
    StdErr: 
    
    Error occurred while reading WSGI handler:
    
    Traceback (most recent call last):
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 791, in main
        env, handler = read_wsgi_handler(response.physical_path)
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler
        handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
      File "c:\users\aspnet\anaconda3\lib\site-packages\wfastcgi.py", line 600, in get_wsgi_handler
        handler = __import__(module_name, fromlist=[name_list[0][0]])
      File ".\my_app.py", line 45, in <module>
        pyautogui.screenshot()
      File "c:\users\aspnet\anaconda3\lib\site-packages\pyscreeze\__init__.py", line 135, in wrapper
        return wrappedFunction(*args, **kwargs)
      File "c:\users\aspnet\anaconda3\lib\site-packages\pyscreeze\__init__.py", line 427, in _screenshot_win32
        im = ImageGrab.grab()
      File "c:\users\aspnet\anaconda3\lib\site-packages\PIL\ImageGrab.py", line 44, in grab
        include_layered_windows, all_screens
    OSError: screen grab failed
    
    
    StdOut: 
    
    StdErr: 
    
    读取WSGI处理程序时出错: 回溯(最近一次呼叫最后一次): 文件“c:\users\aspnet\anaconda3\lib\site packages\wfastcgi.py”,第791行,主目录 env,handler=read\u wsgi\u handler(response.physical\u路径) 文件“c:\users\aspnet\anaconda3\lib\site packages\wfastcgi.py”,第633行,在read\u wsgi\u处理程序中 handler=get\u wsgi\u handler(os.getenv(“wsgi\u handler”)) 文件“c:\users\aspnet\anaconda3\lib\site packages\wfastcgi.py”,第600行,在get\u wsgi\u处理程序中 handler=\uuuu导入(模块名称,fromlist=[name\u列表[0][0]]) 文件“\my_app.py”,第45行,在 pyautogui.screenshot() 文件“c:\users\aspnet\anaconda3\lib\site packages\pyscreeze\\uuuu init\uuuu.py”,第135行,在包装器中 返回wrappedFunction(*args,**kwargs) 文件“c:\users\aspnet\anaconda3\lib\site packages\pyscreeze\\uuuu init\uuuuu.py”,第427行,在win32屏幕截图中 im=ImageGrab.grab() 文件“c:\users\aspnet\anaconda3\lib\site packages\PIL\ImageGrab.py”,第44行,位于grab中 包括分层窗口、所有屏幕 操作错误:屏幕抓取失败 标准: 标准: 文件“c:\users\aspnet\anaconda3\lib\site packages\PIL\ImageGrab.py”,第44行,位于grab中 包括分层窗口、所有屏幕 操作错误:屏幕抓取失败

    要解决此问题,请将stderr和stdin设置为subprocess.PIPE:

    ['where', 'wkhtmltopdf'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0].strip()
    
    参考:

    文件“c:\users\aspnet\anaconda3\lib\site packages\PIL\ImageGrab.py”,第44行,位于grab中 包括分层窗口、所有屏幕 操作错误:屏幕抓取失败

    使用以下代码:

    from PIL import ImageGrab