我根据此代码Is it possible to run a Python script as a service in Windows? If possible, how?创建了一项服务 但是当我运行代码时,我只能将其作为服务而不是正常的流程运行 是否有可能创建一个脚本,当它由管理员运行时作为服务运行,但是当它没有管理员权限激活时,它作为正常流程运行?
答案 0 :(得分:1)
使用win32service
(某些文档here),您还可以通过调用GetUserObjectInformation
方法获取用户信息,并使用不同的type
参数获取{{1}之一}}。可以找到完整的用户信息类型列表here。
要查看您在程序中的某个位置打印信息,例如下面的代码段。如果您只需要用户名UOI_FLAGS,UOI_NAME, UOI_TYPE, or UOI_USER_SID
就可以轻松实现目标。
win32api
最后,为了直接获得权限,您可以使用print win32api.GetUserName()
print win32service.GetUserObjectInformation( win32service.OpenInputDesktop(0,0,1), 4)
# or simply:
print win32service.GetUserObjectInformation( win32service.GetProcessWindowStation(), 4)
,如下所示:
win32net
这将返回一个映射到:
的int在您的计划中,您可以检查 win32net.NetUserGetInfo(None, win32api.GetUserName() , 11 )['priv']
是否将其作为服务启动。
有关扩展程序的详细信息,请参阅简要参考here。