拒绝Windows命令行访问以安装服务,以及I';我是管理员
我正在尝试用Python(3.4)安装windows服务。安装后,我打算运行它。除了演示在Windows中运行的服务外,它不执行任何功能 安装服务时,我获得以下访问权限: 我是计算机管理员,因此我应该有这样做的权限 可能是因为命令行正在尝试使用Python安装服务。Python是否具有通过命令行执行此操作的权限 我怎样才能克服这个问题。是否需要更改具有权限的特定文件 为了以防万一,我已经包括了服务中的代码 谢谢你的帮助拒绝Windows命令行访问以安装服务,以及I';我是管理员,windows,winapi,python-3.x,Windows,Winapi,Python 3.x,我正在尝试用Python(3.4)安装windows服务。安装后,我打算运行它。除了演示在Windows中运行的服务外,它不执行任何功能 安装服务时,我获得以下访问权限: 我是计算机管理员,因此我应该有这样做的权限 可能是因为命令行正在尝试使用Python安装服务。Python是否具有通过命令行执行此操作的权限 我怎样才能克服这个问题。是否需要更改具有权限的特定文件 为了以防万一,我已经包括了服务中的代码 谢谢你的帮助 #Run a Windows Service import win32s
#Run a Windows Service
import win32serviceutil
import win32service
import win32event
import os
import sys
import time
from threading import Thread
import http.server
class ServiceLauncher(win32serviceutil.ServiceFramework):
_svc_name_ = "PythonService"
_svc_display_name_ = "Python based win32 service"
_svc_description_ = ""
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
def SvcDoRun(self):
thread = Thread(target = httpserver.run_httpserver)
thread.daemon = True
thread.start()
while (1):
rc = win32event.WaitForSingleObject(self.hWaitStop, 1000)
if rc==win32event.WAIT_OBJECT_0:
# Stop event
break
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(ServiceLauncher)
解决方案包括以管理员身份运行命令行。这是通过右键单击命令提示符并选择以管理员身份运行命令行来执行的
在Windows中,登录计算机的用户可能是Windows管理员,但权限不会自动扩展到命令行。具有管理员权限的用户必须选择以管理员身份运行命令行,以便执行为管理员保留的命令,例如执行Windows服务的安装 用户帐户控制(UAC)可能会妨碍您:您是否明确地以管理权限启动命令行?(如果是这样,它应该在命令行窗口的标题栏中的某个位置显示“Administrator”)。您可能不是管理员。您可能是UAC分割令牌的标准用户。