name : win32serviceutil.pyc
�
"�\Uc@s�ddlZddlZddlZddlZddlZddlZddlZddlZeZ	dd�Zd�Zd�Z
d�Zdd�Zd�Zddddddddddddd	�Zdddddddddddddd
�
Zd�Zd�Zdd
�Zd�Zdd�Zd�Zd�Zdd�Zdd�Zddd�Zdd�Zddd�Zdddd�Zd�Z gd�Z!dd�Z"dd�Z#d�Z$ddddd�Z%d d"d!��YZ&dS(#i����NcCs�|rttd�rtjS|dkr]tjjtj�dj	d�rTd}q]d}ntjj
|�r|tj|�Stjjtjj
|��d}yLtjtjd|tjf�}tjj
|�r�|Std|��Wn�tjk
r�xOtjgtjD]:}tjj||�}tjj
|�rtj|�SqWytjd|�dSWq�tjk
r�d||f}t|��q�XnXdS(	Ntfrozenit_dsPythonService_d.exesPythonService.exesSoftware\Python\%s\%ss_The executable '%s' is registered as the Python service exe, but it does not exist as specifieds�%s is not correctly registered
Please locate and run %s, and it will self-register
Then run this service registration process again.(thasattrtsyst
executabletNonetostpathtsplitexttwin32servicet__file__tendswithtisfiletwin32apitGetFullPathNametbasenamet
RegQueryValuetwin32contHKEY_LOCAL_MACHINEtwinvertRuntimeErrorterrortprefixtjoint
SearchPath(texeNametbaseNameRtlooktmsg((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytLocatePythonServiceExe
s4"		
"cCs�tjtjBtjB}tjtjdd|�}tj|�d}|j�}x�t	d|�D]}}tj
||�}tj||d|�}y6ttj|d�d�}|j�|kr�|SWqatj
k
r�qaXqaWdS(Ns!SYSTEM\CurrentControlSet\ServicesitDisplayName(RtKEY_READtKEY_ENUMERATE_SUB_KEYStKEY_QUERY_VALUER
t
RegOpenKeyRtRegQueryInfoKeytlowertranget
RegEnumKeytstrtRegQueryValueExRR(tlongNametaccessthkeytnumtxtsvctskeytthisName((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt_GetServiceShortName1scCsvytj|||�SWn7tjk
rP}|jtjtjgkrQ�qQnXtj||�}tj|||�S(N(R	tOpenServiceR
RtwinerrortERROR_SERVICE_DOES_NOT_EXISTtERROR_INVALID_NAMEtGetServiceKeyName(thscmtnameR*tdetails((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytSmartOpenServiceIs
cCsLtjtjd|dtj�}ztj|d�dSWd|j�XdS(Ns$SYSTEM\CurrentControlSet\Services\%sit	ImagePath(R
R"RRtKEY_ALL_ACCESSR(tClose(tserviceNameR+((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytLocateSpecificServiceExeSs"cCs|s!tjddd|�}n|s�yGtjjtjjtj�dd�}tjj|�rm|}nWq�t	k
r�q�Xn|s�t
d��ntj|�}tjt
jd|dt
j�}z�tj|d�}zttj|d	dt
j|�tj|d
dt
jd�tj|ddt
jd
�tj|ddt
jd�Wdtj|�XWdtj|�Xypddl}tjj|�\}}tj�}	|r�tj|�nz|jd|�Wdtj|	�XWn$tjk
r
}
dGHdG|
GHnXdS(NtPythontdlltisperfmondata.dlls1The name of the performance DLL must be availables$SYSTEM\CurrentControlSet\Services\%stPerformancetLibrarytOpentOpenPerformanceDataR=tClosePerformanceDatatCollecttCollectPerformanceDatai����spython.exe s9The service was installed OK, but the performance monitorsdata could not be loaded.(R
t
GetProfileValRRRtsplitR	R
RtAttributeErrort
ValueErrorRR"RRR<tRegCreateKeyt
RegSetValueExtREG_SZtRegCloseKeytperfmontgetcwdtchdirtLoadPerfCounterTextStringsR(R>tiniNametdllNamettryNameR+tsubKeyRRRtfnametoldPathR9((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytInstallPerfmonForService\sD(

" cCs |dk	r|d|S|SdS(Nt (R(RtexeArgs((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt_GetCommandLine�sicCs�|dkrtj}ntj}|r7|tjB}n|dkrOtj}ndt|	�}	t|	|�}tjddtj	�}z�tj
|||tj||||dd|||�
}|
dk	r�ytj|tj
|
�Wq�tk
r�q�Xn|dk	rXytj|tj|�WqXtjtfk
rT|rUtjd�qUqXXntj|�Wdtj|�Xt||�|
dk	r�t||
|�ndS(Ns"%s"is*Delayed Start not available on this system(RR	tSERVICE_DEMAND_STARTtSERVICE_WIN32_OWN_PROCESStSERVICE_INTERACTIVE_PROCESStSERVICE_ERROR_NORMALRR_t
OpenSCManagertSC_MANAGER_ALL_ACCESSt
CreateServicetSERVICE_ALL_ACCESStChangeServiceConfig2tSERVICE_CONFIG_DESCRIPTIONtNotImplementedErrort&SERVICE_CONFIG_DELAYED_AUTO_START_INFORtwarningstwarntCloseServiceHandletInstallPythonClassStringR\(tpythonClassStringR>tdisplayNamet	startTypeterrorControltbRunInteractivetserviceDepstuserNametpasswordRt
perfMonInit
perfMonDllR^tdescriptiontdelayedstarttserviceTypetcommandLineR7ths((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytInstallService�sP			

cCs�y!ddl}|jd|�Wnttjfk
r=nXdt|�}|dkrftj}n|dkr~tj}ntj	ddtj
�}tj}|r�|tjB}nt
||�}z�t||tj�}z�tj|||||dd||||	�|
dk	rGytj|tj|
�WqGtk
rCqGXn|dk	r�ytj|tj|�Wq�tjtfk
r�|r�tjd�q�q�XnWdtj|�XWdtj|�Xt||�|
dk	r�t||
|�ndS(Ni����spython.exe s"%s"is*Delayed Start not available on this system(RRtUnloadPerfCounterTextStringstImportErrorR
RRRR	tSERVICE_NO_CHANGERdReRaRbR_R:RgtChangeServiceConfigRhRiRjRkRlRmRnRoR\(RpR>RrRsRtRuRvRwRRqRxRyR^RzR{RRR7R|R}R~((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyR��sZ		

cCsT|rPtjtjd|�}ztj|dtj|�Wdtj|�XndS(Ns0System\CurrentControlSet\Services\%s\PythonClass(R
RNRRtRegSetValueRRPRQ(RpR>tkey((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyRo�s
cCs�y
|j}Wntk
r nXtjtjd|�}zWt|�td�krttj||dtj|�ntj||dtj	|�Wdtj
|�XdS(Ns/System\CurrentControlSet\Services\%s\Parametersi(t
_svc_name_RLR
RNRRttypeROt	REG_DWORDRPRQ(R>toptiontvalueR�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytSetServiceCustomOptions

 cCs�y
|j}Wntk
r nXtjtjd|�}z4ytj||�dSWntjk
rl|SXWdtj|�XdS(Ns/System\CurrentControlSet\Services\%s\Parametersi(	R�RLR
RNRRR(RRQ(R>R�tdefaultValueR�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytGetServiceCustomOptions

	cCs�y!ddl}|jd|�Wnttjfk
r=nXtjddtj�}z3t	||tj
�}tj|�tj|�Wdtj|�Xddl
}y|j|�Wntjk
r�nXdS(Ni����spython.exe (RRR�R�R
RR	RdRReR:Rgt
DeleteServiceRntwin32evtlogutiltRemoveSourceFromRegistry(R>RRR7R~R�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt
RemoveService%s 
cCsmtj|dtj�}z@t||tj�}ztj||�}Wdtj|�XWdtj|�X|S(N(R	RdRReR:RgtControlServiceRn(R>tcodetmachineR7R~tstatus((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyR�:sc
Cs"t|�tjkr$t|�}ni}tjtjd�}d}x�ytj||�}Wntj	k
ruPnX|d}tj||�}ytj
|d�\}}Wntj	k
r�d}nXxC|D];}|j�}|j|g�}	|	j
|�|	||<q�WqHWt||�S(Ns!SYSTEM\CurrentControlSet\ServicesiitDependOnService((R�t
pywintypestUnicodeTypeR'R
R"RRR&RR(R$tgettappendt
__ResolveDeps(
tfindNametdicttkR,R.tsktdepsttyptdeptdep_on((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt
__FindSvcDepsGs,



cCsV|j|j�g�}g}x1|D])}|jd|�t||�|}q%W|S(Ni(R�R$tinsertR�(R�R�titemstretListR.((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyR�`s
cCswxpt|d�D]6}t||�d}||kr:Pntjd�qWtjtjdtjtj�d ��dS(s|Waits for the service to return the specified status.  You
    should have already requested the service to enter that stateiii�tQueryServiceStatusi����N(	R%R�R
tSleepR�RR3tERROR_SERVICE_REQUEST_TIMEOUTt
FormatMessage(R>R�twaitSecsR�tit
now_status((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytWaitForServiceStatushsicCs�ytj|tj�}Wn.tjk
rI}|jtjkrJ�qJnXxot|�D]9}tj|�}|dtj	kr�Pnt
jd�qWWtjtjdt
j
tj�d ��dS(Nii�R�i����(R	R�tSERVICE_CONTROL_STOPR�RR3tERROR_SERVICE_NOT_ACTIVER%R�tSERVICE_STOPPEDR
R�R�R�(R~R�R�texcR�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt__StopServiceWithTimeoutss
cCs�tj|dtj�}z�t|�}xH|D]@}tj||tj�}zt||�Wdtj|�Xq.Wtj||tj�}zt||�Wdtj|�XWdtj|�XdS(N(	R	RdRReR�R2RgR�Rn(R>R�R�R7R�R�R~((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytStopServiceWithDeps�s
cCst|tj|�S(N(R�R	R�(R>R�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytStopService�scCsktj|dtj�}z>t||tj�}ztj||�Wdtj|�XWdtj|�XdS(N(R	RdRReR:RgtStartServiceRn(R>targsR�R7R~((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyR��scCs�yt||�Wn.tjk
rA}|jtjkrB�qBnXxlt|�D]Y}yt|||�PWqOtjk
r�}|jtjkr��ntj	d�qOXqOWdGHdS(sXStop the service, and then start it again (with some tolerance for allowing it to stop.)i�s,Gave up waiting for the old service to stop!N(
R�R�RR3R�R%R�tERROR_SERVICE_ALREADY_RUNNINGR
R�(R>R�twaitSecondsR�R�R�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytRestartService�s
cCs;|tjtjfkr7ts$t�dGHtj�tStS(NsStopping debug service.(RtCTRL_C_EVENTtCTRL_BREAK_EVENTtg_debugServicetAssertionErrortSvcStoptTruetFalse(tevt((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt_DebugCtrlHandler�s
cCs�ddl}d|jfGH|jt�|j|�||�atjtt�ztj	�Wdtjtt
�|jt
�daXdS(Ni����s,Debugging service %s - press Ctrl+C to stop.(tservicemanagerR�t	DebuggingR�tPrepareToHostSingleR�R
tSetConsoleCtrlHandlerR�tSvcRunR�R(tclstargvR�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytDebugService�s


cCs�|dkrtj}nddl}|j||j�}|dkr�yStj|d�}tj	j
|�d}tj	j|tj|�dd�}Wn(tj
k
r�t
d|d��nXtj	j|�d}n|d|jS(Ni����t__main__iis3Could not resolve the path name '%s' to a full patht.(RRR�tpickletwhichmodulet__name__R
RRRRKRt	FindFilesRR(R�R�R�tmodNameRZR((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytGetServiceClassString�s*cCsjtj|dtj�}z=t||tj�}ztj|�}Wdtj|�XWdtj|�X|S(N(R	RdRtSC_MANAGER_CONNECTR:tSERVICE_QUERY_STATUSR�Rn(R>R�R7R~R�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyR��scCs�y!tjjtjd�d}Wntjd}nXd|GHdGHdGHdGHdGHdGHd	GHd
GHdGHdGHd
GHdGHdGHdGHtjd�dS(NiisVUsage: '%s [options] install|update|remove|start [...]|stop|restart [...]|debug [...]'s1Options for 'install' and 'update' commands only:sF --username domain\username : The Username the service is to run unders4 --password password : The password for the usernamesT --startup [manual|auto|disabled|delayed] : How the service starts, default = manuals@ --interactive : Allow the service to interact with the desktop.sM --perfmonini file: .ini file to use for registering performance monitor datasB --perfmondll file: .dll file to use when querying the service fors.   performance data, default = perfmondata.dlls-Options for 'start' and 'stop' commands only:s@ --wait seconds: Wait for the service to actually start or stop.sJ                 If you specify --wait with the 'stop' option, the servicesI                 and all dependent services will be stopped, each waitings&                 the specified period.(RRRKRR�texit(RZ((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytusage�s&!	RBc Csfd}|dkrtj}nt|�dkr:t�n|j}|j}|dkrgt|�}nddl}y8|j|d|ddddd	d
dg�\}	}
Wn"|j	k
r�}|GHt�nXd}d}
d}}d}d}d}d}x`|	D]X\}}|dkr&|}q|d
kr;|}
q|dkrP|}q|dkre|}q|dkrzd}q|dkrit
jd6t
jd6t
jd6t
j
d6}y||j�}Wntk
r�d|GHnX|j�dkrt}q]|j�dkr]t}q]q|dkryt|�}Wq]tk
rYdGHt�q]XqqW|
d}d}|dkr�d}d|GHy1t||
d�|r�t|t
j|�nWq
t
j	k
r�}d|jGH|j}q
Xn|dkr9d}d|GHt||
d�|r
t|t
j|�q
n�|dkr
d}ttd�s�d j|
d�}yt|�}WnEtj	k
r�}|jtjkr�d!GHd"GHtjd�n�nXyt j!d#|||f�Wqt"k
r�qXq
t#||
�n|r-t|
�dkr-t�n|d$kr�d}y
|j$}Wnt%k
red}nXy
|j&}Wnt%k
r�d}nXy
|j'}Wnt%k
r�d}nXy
|j(}Wnt%k
r�d}nXd%|fGHyqt)|||d&|d'|d(|d)|d*|
d+|d,|d-|d.|d/|d0|�|rR||	f�nd1GHWq�t
j	k
r�}|jtj*kr�d2}q�d3|j|jfGH|j}q�tk
r�}d4t+|�GHd}yt,|�Wq�tj	k
r�d5GHq�Xq�Xn|d2kr_d}y
|j$}Wnt%k
r6d}nXy
|j&}Wnt%k
r]d}nXy
|j'}Wnt%k
r�d}nXy
|j(}Wnt%k
r�d}nXd6GHytt-||d&|d'|d(|d)|d*|
d+|d7|d,|d-|d.|d/|d0|�|r||	f�nd8GHWqCt
j	k
r[}d9|j|jfGH|j}qCXn�|d:kr�d}d;|GHyt,|�d<GHWqCt
j	k
r�}d=|j|jfGH|j}qCXn||d>krCd}d?|GHy'|r�t.|d@|�n
t/|�WqCt
j	k
r?}dA|j|jfGH|j}qCXn|sbd}dB|GHt�n|S(CsoUtility function allowing services to process the command line.

    Allows standard commands such as 'start', 'stop', 'debug', 'install' etc.

    Install supports 'standard' command line options prefixed with '--', such as
    --username, --password, etc.  In addition,
    the function allows custom command line options to be handled by the calling function.
    iii����Ns	password=s	username=sstartup=sperfmonini=sperfmondll=tinteractiveswait=s
--usernames
--passwords--perfmoninis--perfmondlls
--interactives	--startuptmanualtautotdelayedtdisableds"'%s' is not a valid startup options--waits1--wait must specify an integer number of seconds.tstartsStarting service %ssError starting service: %strestartsRestarting service %stdebugRR]s,The service does not appear to be installed.s/Please install the service before debugging it.s%s -debug %s %stinstallsInstalling service %sRuRrRtRvRwRRxRyR^RzR{sService installedtupdates!Error installing service: %s (%d)sError installing service: %ss;Warning - could not remove the partially installed service.sChanging service configurationRqsService updateds-Error changing service configuration: %s (%d)tremovesRemoving service %ssService removedsError removing service: %s (%d)tstopsStopping service %sR�sError stopping service: %s (%d)sUnknown command - '%s'(0RRR�tlenR�R�t_svc_display_name_R�tgetoptRR	R`tSERVICE_AUTO_STARTtSERVICE_DISABLEDR$tKeyErrorR�R�tintRMR�R�tSERVICE_RUNNINGtstrerrorR3R�RRR?R
tERROR_FILE_NOT_FOUNDR�RtsystemtKeyboardInterruptR�t
_svc_deps_RLt
_exe_name_t
_exe_args_t_svc_description_RtERROR_SERVICE_EXISTSR'R�R�R�R�( R�tserviceClassStringR�tcustomInstallOptionstcustomOptionHandlerterrR>tserviceDisplayNameR�toptsR�R9RvRwRxRytstartupR{R�R�topttvaltmaptargtknownArgR�tsvcArgsRRuR^RzR((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytHandleCommandLine
sd	
		8
					





	

		













E
		











H
		
			
tServiceFrameworkcBszeZdZdZdZdZd�Zd�Zdddd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�ZRS(cCsHddl}|j|d|jt�|_|j|j�d|_dS(Ni����i(R�tRegisterServiceCtrlHandlertServiceCtrlHandlerExR�tsshtSetEventSourceNameR�t
checkPoint(tselfR�R�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt__init__�scCsvd}t|d�r%|tjB}nt|d�rSt|d�rS|tjB}nt|d�rr|tjB}n|S(NiR�tSvcPausetSvcContinuetSvcShutdown(RR	tSERVICE_ACCEPT_STOPtSERVICE_ACCEPT_PAUSE_CONTINUEtSERVICE_ACCEPT_SHUTDOWN(R
taccepted((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytGetAcceptedControls�si�icCs�|jdkrdS|tjkr+d}n|j�}|tjtjgkrXd}n|jd|_|j}tj||||||f}tj	|j|�dS(Nii(
RRR	tSERVICE_START_PENDINGRR�R�R	RatSetServiceStatus(R
t
serviceStatustwaitHintt
win32ExitCodetsvcExitCodeRR	R�((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytReportServiceStatuss"				cCs|jtj�dS(N(RR	R�(R
((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytSvcInterrogatescCs%y
d|GHWntk
r nXdS(NsUnknown control status - %d(tIOError(R
tcontrol((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytSvcOther#s

cCs|j|dd�S(Ni(RR(R
R((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pytServiceCtrlHandler*scCs
|j|�S(N(R(R
Rt
event_typetdata((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt
SvcOtherEx.scCs�|tjkr|j�S|tjkr2|j�S|tjkrK|j�S|tjkrd|j�S|tj	kr}|j
�S|j|||�SdS(N(R	R�R�tSERVICE_CONTROL_PAUSERtSERVICE_CONTROL_CONTINUER
tSERVICE_CONTROL_INTERROGATERtSERVICE_CONTROL_SHUTDOWNRR"(R
RR R!((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyR3s




cCs.|jtj�|j�|jtj�dS(N(RR	R�tSvcDoRuntSERVICE_STOP_PENDING(R
((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyR�As
N(R�t
__module__RR�R�R�R�RRRRRRR"RR�(((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyR�s							(('R	R
RR3RR�RRlRRRRR1R:R?R\R_RR�RoR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RR(((s[C:/Program Files (x86)/Alibaba/Aegis/PythonLoader/third_party/win32/lib\win32serviceutil.pyt<module>	sD00$		
		-	/		:	
		
			
	�

© 2026 UnknownSec