%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/platform/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/platform/win.pyc

�
���^c@@s�dZddlmZmZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddl
mZddl
Z
ddlZddlZddlZddlZddlZeje�Zejd�Zejd�Zejd	d
e�Zejdd
e�Zejdd
e�Zd
ZdZdZdZ e
j!e
j"Be
j#Be
j$Be
j%Be
j&Be
j'Be
j(Be
j)Be
j*Be
j+Be
j,Be
j-BZ.e
j/e
j0Be
j1Be
j2Be
j3Be
j4Be
j5Be
j6Be
j7Be
j*Be
j+Be
j,Be
j-BZ8dZ9e	j:Z;dZ<dZ=dZ>dZ?e	j:Z@e	j:ZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZ*dZ+dZ,dZ-e*e+Be,Be-BZRdZSdZTdZUdZVd ZWd!ZXd"ZYd#ZZd$Z[eReSBeTBeUBeVBeWBeXBeYBeZBe[BZ\dZ]dZ^e	j:Z_dZ`dZae	j:ZbdZcdZddZedZfd%e	jgfd&��YZhejieh�Zjd'e	jkfd(��YZkd)e	jlfd*��YZld+e	jmfd,��YZmejnZoejpZqejieo�Zrejieq�Zsd-ejtfd.��YZuejieu�Zvd/ejtfd0��YZwejiew�Zxd1ejtfd2��YZyejiey�Zze	j{Z|d3ejtfd4��YZ}ejie}�Z~d5ejtfd6��YZejie�Z�d7ejtfd8��YZ�ejie��Z�e�d9�Z�ej��Z�d:j�e�ej���Z�ej�Z�d;ejtfd<��YZ�ejie��Z�ejie	j:�Z�e	j:Z�e�Z�ejie	jl�Z�ejie	j{�Z�ejie	j��Z�d=ejtfd>��YZ�d?e�fd@��YZ�dAe�fdB��YZ�dCe�fdD��YZ�dEe�fdF��YZ�dGe�fdH��YZ�ejie��Z�ejie��Z�dIe�fdJ��YZ�dKe�fdL��YZ�dM�Z�dN�Z�e	jldO�j�Z�e	j�dO�j�Z�e�Z�e	j�dP�j�Z�e	j�dQ�j�Z�e	j�dR�j�Z�dSejtfdT��YZ�ejie��Z�ejie	j��Z�ejiej��Z�Z�ejiej��Z�dUejtfdV��YZ�ejie��Z�dWejtfdX��YZ�ejie��Z�dYe�fdZ��YZ�ejie��Z�d[ejtfd\��YZ�ejie��Z�d]e	jlfd^��YZ�d_�Z�d`e	j�fda��YZ�db�Z�dc�Z�dd�Z�e�ej�e�e	j��e�ej�e	jke	jl�e�ej�e	jke	jle	j�e	j��e�ej�e	jke	jle	jle	jle�e	j�e	jke	j��	e�ej�e	jl�e�ej�e	jke	jle��e�ej�e	jke�e�e�e	j��e�ej�e	jke	j�e	j�e	j�e	j�e	j�e	j�e	j�e	j�e	j�e�e��
e�ej�e	jl�e�ej�eke	jle	jle	jle�e	j�e	jke	j��	e�ej�eke	j�e��e�ej�eke	jle	j�e��e�ej�eke	jle	j�e�ebe_e��e�ej�ehez�e�ej�ehe	j{�e�ej�ehe��e�ej�eheve�e��e�ej�ehe	jl�e�ej�ehe	jleve��e�ej�ehe	jleve;e	j:e	j{e	j:e�e�e�e�eze�e�ej�de\eee`dde�Z�df�Z�dg�Z�dh�Z�ej�did~�Z�de�dddddn�Z�dde�ddo�Z�de�ddp�Z�dde�de�dq�Z�ej��ej��ej��de�e
j^dr�Z�e�e�ds�Z�dt�Z�du�Z�dv�Z�ddddddddw�Z�ddddx�Z�dddy�Z�dz�Z�d{�Z�d|�Z�ddddddddddd}�
Z�dS(u 
Windows specific utility functions, this module should be imported in a try,
except block because it is only applicable on Windows platforms.


Much of what is here was adapted from the following:

    https://stackoverflow.com/a/43233332
    http://stackoverflow.com/questions/29566330
i(tabsolute_importtunicode_literalsN(twintypes(trange(tzipuntdllusecur32ukernel32tuse_last_erroruadvapi32uuserenvuS-1-5-18uS-1-5-19iiiiiiiiiRit	NegotiatetKerberost%MICROSOFT_AUTHENTICATION_PACKAGE_V1_0iiiiii i@i�itNTSTATUScB@seZd�Zd�ZRS(cC@s
tj|�S(N(tntdlltRtlNtStatusToDosError(tself((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytto_error�scC@s1|jj}tjj|�}dj||j�S(Nu{}({})(t	__class__t__name__RtULONGtfrom_buffertformattvalue(Rtnametstatus((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt__repr__�s(Rt
__module__R
R(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR	�s	tBOOLcB@seZd�ZRS(cC@s"|jj}dj|t|��S(Nu{}({})(RRRtbool(RR((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�s(RRR(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�stHANDLEcB@s>eZdZd�Zd�Zejd�ZeZd�Z	RS(uclosedcC@s
|jpdS(Ni(R(R((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt__int__�scC@sDt|dt�s4t|_t|�}d|_|Std��dS(Nuclosedualready closed(tgetattrtFalsetTruetclosedtinttNoneRt
ValueError(RR((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytDetach�s		cC@s0|r,t|dt�r,||j��ndS(Nuclosed(RRR#(RtCloseHandle((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytClose�scC@sdj|jjt|��S(Nu{}({})(RRRR (R((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�s(uclosed(
RRt	__slots__RR#tkernel32R$R%t__del__R(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�s		t
LARGE_INTEGERcB@sleZdej_ej�Zejde	j
e��ejZd�Zd�Z
d�Zed��ZRS(icC@s|jS(N(R(R((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�scC@s|jj}dj||j�S(Nu{}({})(RRRR(RR((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�scC@s4|j|j}|dkr$|dStd��dS(Nig�cAuvalue predates the Unix epoch(Rt_unix_epochR"(Rt	time100ns((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytas_time�scC@s!t|d�}|||j�S(Ni
ii���(R R*(tclsttR+((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt	from_time�sN(RRR!R
tRtlSecondsSince1970ToTimetrestypeRR)R*tctypestbyrefRRRR,tclassmethodR/(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR)�s				tSTRINGcB@s/eZdejfdejfdeffZRS(uLengthu
MaximumLengthuBuffer(RRRtUSHORTtPCHARt_fields_(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR5�stUNICODE_STRINGcB@s/eZdejfdejfdeffZRS(uLengthu
MaximumLengthuBuffer(RRRR6tPWCHARR8(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR9�stLUIDcB@sDeZdejfdejffZdd�Zd�Zd�ZRS(uLowPartuHighParticC@s|jtj|��S(N(tfrom_buffer_copyR2tc_ulonglong(R-R((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt__new__scC@stjj|�jS(N(R2R=RR(R((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRscC@s"|jj}dj|t|��S(Nu{}({})(RRRR (RR((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRs(	RRRtDWORDtLONGR8R>RR(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR;s
	tSID_AND_ATTRIBUTEScB@s#eZdefdejffZRS(uSidu
Attributes(RRtPSIDRR?R8(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRAs	tTOKEN_GROUPScB@s'eZdejfdedffZRS(u
GroupCountuGroupsi(RRRR?RAR8(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRC!stTOKEN_SOURCEcB@s3eZdeefdeffZddd�ZRS(u
SourceNameuSourceIdentifiercC@s�tt|�j�|dk	rLt|t�s@|jd�}n||_n|dkrz|j}t	j
tj|��n	||_dS(Numbcs(
tsuperRDt__init__R!t
isinstancetbytestencodet
SourceNametSourceIdentifierR
tNtAllocateLocallyUniqueIdR2R3(RRJRKtluid((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRF1s	N(RRtCHARtTOKEN_SOURCE_LENGTHR;R8R!RF(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRD+s
sPYTHON  u{}-{}tQUOTA_LIMITScB@sGeZdefdefdefdefdefdejffZRS(uPagedPoolLimituNonPagedPoolLimituMinimumWorkingSetSizeuMaximumWorkingSetSizeu
PagefileLimitu	TimeLimit(RRtSIZE_TRR)R8(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRPEs					tContiguousUnicodecB@sPeZd�Zd�Zd�Zd�Zd�Zd�Zedd��Z
RS(cO@stt|�j||�dS(N(RERRRF(Rtargstkwargs((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRFYscC@sOtjt�}t|dj|��}|j|}|j}|rK|| SdS(Nu_{}(R2tsizeoftWCHARRRtLengthtBufferR!(RRt
wchar_sizetstlengthtbuf((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt_get_unicode_string\s
	cC@s�t|�}tjt�}tdj|��d|}tj|tj|�|�tj|�tj|�}x?|D]7}t|�d|}tj|||�||7}qxWdS(Nui(	ttypeR2RURVtlentjointresizet	addressoftmemmove(RtvaluesR-RYtbufsizetaddrR((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt_set_unicode_bufferes
c
C@ssg}xO|jD]D}||kr8|j|p1d�q|jt||�pPd�qW|j|�t|�}tjt�}tj|�tj|�}x�t	|j|�D]�\}}tj
|t�}	t|dj|��}
t
|�|}|
_||}||kr|dks:||krO|p6|
jrOd|
_d|
_n|	|
_||
_||7}q�WdS(Nuu_{}i(t_string_names_tappendRRgR^R2RURVRbRtcastR:RR_RWR!RXt
MaximumLength(
RRRRdtnR-RYRftvtptrtustrR[tfull_length((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt_set_unicode_stringps* 

			cC@s%||jkrt�n|j|�S(N(RhtAttributeErrorR](RR((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt__getattr__�s	cC@s?||jkr"|j||�ntt|�j||�dS(N(RhRqRERRt__setattr__(RRR((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRt�scC@s�tjj|�}|dk	r1tj||�ntjtj|�|tj|��tj|�|}xV|j	D]K}t
|dj|��}tjj
|j�}|rs|j|7_qsqsW|S(Nu_{}(R2t	StructureR>R!RaRcR3RURbRhRRtc_void_pRRXR(R-taddresstsizetxtdeltaRlRoRf((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytfrom_address_copy�s%N(RRRFR]RgRqRsRtR4R!R{(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRRWs							tAuthInfocB@seZd�ZRS(cC@s#tt|�j�|j|_dS(N(RER|RFt_message_type_tMessageType(R((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRF�s(RRRF(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR|�stMSV1_0_INTERACTIVE_LOGONcB@sPeZeZdZdefdefdefdeffZd	d	d	d�Z	RS(
uLogonDomainNameuUserNameuPassworduMessageTypeu_LogonDomainNameu	_UserNameu	_PasswordcC@s_tt|�j�|dk	r+||_n|dk	rC||_n|dk	r[||_ndS(N(RERRFR!tLogonDomainNametUserNametPassword(RR�R�R�((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRF�s(uLogonDomainNameuUserNameuPasswordN(
RRtMsV1_0InteractiveLogonR}RhtLOGON_SUBMIT_TYPER9R8R!RF(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�s			tS4ULogoncB@sMeZdZdefdejfdefdeffZd	d	dd�Z	RS(
uUserPrincipalNameu
DomainNameuMessageTypeuFlagsu_UserPrincipalNameu_DomainNameicC@sPtt|�j�||_|dk	r4||_n|dk	rL||_ndS(N(RER�RFtFlagsR!tUserPrincipalNamet
DomainName(RR�R�R�((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRF�s	(uUserPrincipalNameu
DomainNameN(
RRRhR�RRR9R8R!RF(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR��s		tMSV1_0_S4U_LOGONcB@seZeZRS((RRtMsV1_0S4ULogonR}(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR��stKERB_S4U_LOGONcB@seZeZRS((RRtKerbS4ULogonR}(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR��st
ProfileBuffercB@seZd�ZRS(cC@s#tt|�j�|j|_dS(N(RER�RFR}R~(R((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRF�s(RRRF(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR��stMSV1_0_INTERACTIVE_PROFILEcB@s�eZeZdZdefdejfdejfd	efd
efdefdefd
efdefde	fde	fde	fde	fde	fde	fdej
ffZRS(uLogonScriptu
HomeDirectoryuFullNameuProfilePathuHomeDirectoryDriveuLogonServeruMessageTypeu
LogonCountuBadPasswordCountu	LogonTimeu
LogoffTimeuKickOffTimeuPasswordLastSetuPasswordCanChangeuPasswordMustChangeu_LogonScriptu_HomeDirectoryu	_FullNameu_ProfilePathu_HomeDirectoryDriveu_LogonServeru	UserFlags(uLogonScriptu
HomeDirectoryuFullNameuProfilePathuHomeDirectoryDriveuLogonServer(RRR�R}RhtPROFILE_BUFFER_TYPERR6R)R9RR8(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR��s&													cC@s+|jdkr'tj|j���n|S(Ni(RR2tWinErrorR
(tresulttfuncRS((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt
_check_status�scC@s"|stjtj���n|S(N(R2R�tget_last_error(R�R�RS((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt_check_bool�si����i����i����i�tSECURITY_ATTRIBUTEScB@s;eZdejfdejfdejffZd�ZRS(unLengthulpSecurityDescriptorubInheritHandlecK@s,tj|�|_tt|�j|�dS(N(R2RUtnLengthRER�RF(Rtkwds((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRFs(RRRR?tLPVOIDRR8RF(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�stSTARTUPINFOcB@s�eZdZdejfdejfdejfdejfdejfdejfdejfdejfd	ejfd
ejfdejfdejfd
ejfdejfdefdejfdejfdejffZ	d�Z
RS(u1https://msdn.microsoft.com/en-us/library/ms686331ucbu
lpReservedu	lpDesktopulpTitleudwXudwYudwXSizeudwYSizeu
dwXCountCharsu
dwYCountCharsudwFillAttributeudwFlagsuwShowWindowucbReserved2ulpReserved2u	hStdInputu
hStdOutputu	hStdErrorcK@s,tj|�|_tt|�j|�dS(N(R2RUtcbRER�RF(RR�((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRF1s(RRt__doc__RR?tLPWSTRtWORDtLPBYTERR8RF(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�s(	tPROC_THREAD_ATTRIBUTE_LISTcB@seZRS((RR(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�9st
STARTUPINFOEXcB@seZdeffZRS(ulpAttributeList(RRtPPROC_THREAD_ATTRIBUTE_LISTR8(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�@stPROCESS_INFORMATIONcB@sDeZdZdejfdejfdejfdejffZRS(u1https://msdn.microsoft.com/en-us/library/ms684873uhProcessuhThreadudwProcessIdu
dwThreadId(RRR�RRR?R8(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�Gs
t
HANDLE_IHVcB@seZRS((RR(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�RscC@s.|jtkr'tjtj���n|jS(N(RtINVALID_HANDLE_VALUER2R�R�(R�R�RS((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyterrcheck_ihvVst	DWORD_IDVcB@seZRS((RR(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR�\scC@s.|jtkr'tjtj���n|jS(N(RtINVALID_DWORD_VALUER2R�R�(R�R�RS((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyterrcheck_idv`scC@s"|stjtj���n|S(N(R2R�R�(R�R�RS((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt
errcheck_boolfscG@s�||_||_t|t�r-t|_nZt|t�rHt|_n?t|t�rct	|_n$t|t
�r~t|_n	t|_dS(N(
R1targtypest
issubclassR	R�terrcheckRR�R�R�R�R�R�(R�R1R�((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt_winls		cC@s�t}|dkrFt}t�}tjtj�tt	j
|��nt�}z)tj|||||t	j
|��Wd|r�|j�nX|S(N(
RR!RRtadvapi32tOpenProcessTokenR'tGetCurrentProcesstTOKEN_ALL_ACCESSR2R3tDuplicateTokenExR%(tsource_tokentaccesstimpersonation_levelt
token_typet
attributestclose_sourcettoken((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytduplicate_tokens		cC@s)tj�}tjtj|��|jS(N(RRtsecur32tLsaConnectUntrustedR2R3R(thandle((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytlsa_connect_untrusted2scC@s�t|t�s!|jd�}n|d }tj|d�}tt|�t|�|�}tj�}t	�}t
jtj|�tj|�tj|��|j
S(Numbcsii�(RGRHRIR2tcreate_string_bufferR5R_RRtLSA_OPERATIONAL_MODER�tLsaRegisterLogonProcessR3R(tlogon_process_nameR\RR�tmode((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytlsa_register_logon_process8s
	cC@s�t|t�s!|jd�}n|d }tj|�}tt|�t|�|�}tj�}t	j
|tj|�tj|��|jS(Numbcsi(
RGRHRIR2R�R5R_RRR�tLsaLookupAuthenticationPackageR3R(t
lsa_handletpackage_nameR\Rtpackage((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt!lsa_lookup_authentication_packageEs
u	LOGONINFOuTokenuLogonIduProfileuQuotascC@s�|dkrt�}ntj|�}|dkr<t}nt|t�s]|jd�}ntj|�}t	t
|�t
|�|�}|dkr�t|t�r�t}q�t|t
�r�t}q�t}n|dkr�t|t�r�tj}q�t}ntj�}	tj�}
d}t�}t�}
t�}t�}t}|dkret�}t}nzRt|ttf�r�t||�}nz�y�t j!|tj|�||tj|�tj"|�|tj|�tj|	�tj|
�tj|�tj|
�tj|�tj|��Wn5t#k
r[|j$rUtj%|j&���n�nXWd|	r�|	j$}t'j(|�j$}|t)kr�t*j+||
j$�}nt j,|�nXWd|r�t j-|�nXt.|
|||�S(Numbcs(/R!tLPTOKEN_GROUPSR2R3tpy_source_contextRGRHRIR�R5R_R�tNEGOTIATE_PACKAGE_NAMER�tMICROSOFT_KERBEROS_NAMEtMSV1_0_PACKAGE_NAMER�twin32contLOGON32_LOGON_NETWORKtInteractiveRR�RR;RRPR	RR�RtstrR�R�tLsaLogonUserRUtWindowsErrorRR�R
R�tfrom_addressR�R�R{tLsaFreeReturnBuffertLsaDeregisterLogonProcesst	LOGONINFO(t	auth_infotlocal_groupstorigin_nametsource_contexttauth_packaget
logon_typeR�t
plocal_groupsR\tprofile_buffertprofile_buffer_lengthtprofiletlogonidthtokentquotast	substatust
deregisterRwtbuftype((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytlsa_logon_userUsr											
		cC@stt|||�|||�S(N(R�R(RtpasswordtdomainR�R�R�((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt
logon_msv1�scC@s`tjtd�}tjt|��}tj|tj|��t	t
||j�|||�S(Ni(R2tcreate_unicode_buffertMAX_COMPUTER_NAME_LENGTHRR?R_R'tGetComputerNameWR3R�R�R(RR�R�R�R�R[((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytlogon_msv1_s4u�s
cC@sGt|�}z&tt||�|||d|�SWdtj|�XdS(NR�(R�R�R�R�R�(RtrealmR�R�R�R�R�((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytlogon_kerb_s4u�scC@s;tj�}tj|||tj|�|||�|jS(N(RRR'tDuplicateHandleR2R3R(thsrct	srchandlethtgtR�tinherittoptionst	tgthandle((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR��s

cC@s�tj�tj�}}tjtj|�tj|�dd�|rctj|tj	tj	�n|r�tj|tj	tj	�n|j
|j
fS(Ni(RRR't
CreatePipeR2R3R!tSetHandleInformationR�tHANDLE_FLAG_INHERITR(tinherit_readt
inherit_writetreadtwrite((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR��s(

cC@s�tjtjBtjB}tj||�}|j�}|j�}t}x�td|�D]U}|j	|�\\}	}
}}|	t
jko�||ko�||k}
|
rWPqWqWW|j|j
�||�|jd|d�tj|||�dS(u9
    Set an object permission for the given user sid
    iiN(t
win32securitytOWNER_SECURITY_INFORMATIONtGROUP_SECURITY_INFORMATIONtDACL_SECURITY_INFORMATIONtGetUserObjectSecuritytGetSecurityDescriptorDacltGetAceCountRRtGetAcet
ntsecuritycontACCESS_ALLOWED_ACE_TYPEtAddAccessAllowedAcetGetAclRevisiontSetSecurityDescriptorDacltSetUserObjectSecurity(tobjtpermtsidtinfotsdtdacltace_cnttfoundtidxtaceTypetaceFlagstace_masktace_sidt
ace_exists((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt
set_user_perm�s 

cC@s^tj|tj�d}tj�}t|t|�tjt	j
��}t|t|�dS(u`
    Grant the token's user access to the current process's window station and
    desktop.
    iN(RtGetTokenInformationt	TokenUsertwin32processtGetProcessWindowStationRt
WINSTA_ALLtwin32servicetGetThreadDesktoptwin32apitGetCurrentThreadIdtDESKTOP_ALL(tthtcurrent_sidtwinstatdesktop((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytgrant_winsta_and_desktop�s
cC@sPd}x0|j�D]"\}}||d|d7}qW|d7}tj|�S(Nuu=u(titemsR2R�(tenvtsenvtkRm((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytenvironment_string�s

cC@s
|tjO}|dk	r+tj|�}n|dkrCt�}n|dk	ratj|�}n|dk	r�tjt|��}nt�}t	j
|||||||tj|�tj|��	}	|	dkrtj
�}
ttj|
��}|
|_|�n|S(Ni(R�tCREATE_UNICODE_ENVIRONMENTR!R2R�R�tpointerR2R�R�tCreateProcessWithTokenWR3R&tGetLastErrorR�t
FormatMessagetwinerror(R�t
logonflagstapplicationnametcommandlinet
creationflagstenvironmenttcurrentdirectorytstartupinfotprocess_infotrettwinerrtexc((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR5�s4
			c
c@s"xtj�D]
}|jdkr(q
nytjtjd|j�}WnMtjk
r�}|jdkr�t	j
d|j|j��q
n|�nXy4tj
tjBtjBtjB}tj||�}Wn;tk
r}t	j
d|j|j�|j��q
nXytj|tj�d}Wn;tk
rc}t	jd|j|j�|j��q
nXtj|�}	|r�||	kr�t	j
d|�q
n|r�tj|tj�|kr�q
nd�}
|rt}x&|D]}|
||�s�t}q�q�W|sq
qnt|�Vq
WdS(	uj
    Enumerate tokens from any existing processes that can be accessed.
    Optionally filter by sid.
    iiu$Unable to OpenProcess pid=%d name=%su-OpenProcessToken failed pid=%d name=%s user%su)GetTokenInformation pid=%d name=%s user%su)Token for pid does not match user sid: %scS@sLtjd|�}x3tj|tj�D]\}}||kr(tSq(WtS(N(RtLookupPrivilegeValueR!RtTokenPrivilegesRR(ttoktprivRMt	priv_luidtflags((s5/usr/lib/python2.7/site-packages/salt/platform/win.pythas_privKs
"N(tpsutiltprocess_itertpidR&tOpenProcessR�tPROCESS_ALL_ACCESSterrorR8tlogtdebugRRtTOKEN_DUPLICATEtTOKEN_QUERYtTOKEN_IMPERSONATEtTOKEN_ASSIGN_PRIMARYR�t	ExceptiontusernameRR t	exceptiontConvertSidToStringSidtTokenSessionIdRRt	dup_token(
Rt
session_idtprivstptphRCR�R)tprocess_sidtproc_sidRJthas_allR((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytenumerate_tokens#sJ

%%!	

	cC@shxUt|||�D]A}t|�}t|�tj|�dkrStd��n|SWtd��dS(uU
    Find an existing process token for the given sid and impersonate the token.
    iuImpersonation failureN(RdR\t
elevate_tokenRtImpersonateLoggedOnUserR�(RR]R^RF((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytimpersonate_sid[s
cC@s7tj�}t|_tj|tjtjtj|�S(u$
    duplicate the access token
    (	RR�RtbInheritHandleR�tSecurityImpersonationR�tMAXIMUM_ALLOWEDtTokenPrimary(R)tsec_attr((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyR\hs	cC@s�tj|tj�}t�}x*|D]"\}}|j|tjf�q%Wtj|d|�dkr�tt	j
t	j����ndS(u-
    Set all token privileges to enabled
    iN(RRREtsettaddR�tSE_PRIVILEGE_ENABLEDtAdjustTokenPrivilegesR�R&R7R6(R)t
privilegestenable_privsRMRI((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRexs	cC@s+tjtj�|tj�ddtj�S(uCreate an inheritable handleii(R&R�R�R�tDUPLICATE_SAME_ACCESS(R�((s5/usr/lib/python2.7/site-packages/salt/platform/win.pytmake_inheritable�s		c

C@s�|tjO}|dk	r+tj|�}n|	dkrCt�}	n|dk	rgtjt|��}nt�}
t	j
|||||||||tj|	�tj|
��|
S(N(R�R3R!R2R�R�R4R2R�R�tCreateProcessWithLogonWR3(RXR�R�R9R:R;R<R=R>R?R@((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyRu�s*

	(uTokenuLogonIduProfileuQuotas(�R�t
__future__RRtcollectionstloggingtosRKR2Rtsalt.ext.six.movesRRR�R&R!RR$R
t	getLoggerRRQtWinDLLR
R�RR'R�tuserenvt
SYSTEM_SIDt
LOCAL_SRV_SIDtNETWORK_SRV_SIDtLOGON_WITH_PROFILEtWINSTA_ACCESSCLIPBOARDtWINSTA_ACCESSGLOBALATOMStWINSTA_CREATEDESKTOPtWINSTA_ENUMDESKTOPStWINSTA_ENUMERATEtWINSTA_EXITWINDOWStWINSTA_READATTRIBUTEStWINSTA_READSCREENtWINSTA_WRITEATTRIBUTEStDELETEtREAD_CONTROLt	WRITE_DACtWRITE_OWNERR#tDESKTOP_CREATEMENUtDESKTOP_CREATEWINDOWtDESKTOP_ENUMERATEtDESKTOP_HOOKCONTROLtDESKTOP_JOURNALPLAYBACKtDESKTOP_JOURNALRECORDtDESKTOP_READOBJECTStDESKTOP_SWITCHDESKTOPtDESKTOP_WRITEOBJECTSR(R�RtSECURITY_LOGON_TYPER�tNetworktBatchtServiceR�R�R�tMsV1_0Lm20LogontMsV1_0NetworkLogontMsV1_0WorkstationUnlockLogonR�tMsV1_0NoElevationLogontKerbInteractiveLogontKerbWorkstationUnlockLogonR�t&MSV1_0_S4U_LOGON_FLAG_CHECK_LOGONHOURSt$KERB_S4U_LOGON_FLAG_CHECK_LOGONHOURStKERB_S4U_LOGON_FLAG_IDENTITYROR�R�R�tSTANDARD_RIGHTS_REQUIREDRVRSRURTtTOKEN_QUERY_SOURCEtTOKEN_ADJUST_PRIVILEGEStTOKEN_ADJUST_GROUPStTOKEN_ADJUST_DEFAULTtTOKEN_ADJUST_SESSIONIDR�tDUPLICATE_CLOSE_SOURCERst
TOKEN_TYPERktTokenImpersonationtSECURITY_IMPERSONATION_LEVELtSecurityAnonymoustSecurityIdentificationRitSecurityDelegationR@R	tPOINTERt	PNTSTATUSRRR)tc_charRNtc_wcharRVR7R:RuR5tLPSTRINGR9tLPUNICODE_STRINGR;tLPLUIDR�RBRAtLPSID_AND_ATTRIBUTESRCR�RDtLPTOKEN_SOURCER�RItpy_origin_nameRtgetpidtpy_logon_process_nametc_size_tRQRPtLPQUOTA_LIMITStLPULONGR�tLPLSA_OPERATIONAL_MODEtLPHANDLEtLPLPVOIDR?tLPDWORDRRR|RR�R�R�tPMSV1_0_S4U_LOGONtPKERB_S4U_LOGONR�R�R�R�RR�R�tINFINITEtSTD_INPUT_HANDLEtSTD_OUTPUT_HANDLEtSTD_ERROR_HANDLER�tLPSECURITY_ATTRIBUTEStBYTER�RvtPHANDLEtc_ulongR�t
LPSTARTUPINFOR�R�R�tLPSTARTUPINFOEXR�tLPPROCESS_INFORMATIONR�R�R�R�R�R�tGetStdHandleR$R�R�R�tGetExitCodeProcessR�RutLPCWSTRR�R�R�R�RLR�R�R�R�R�R�R!R�R�R�R�t
namedtupleR�R�R�R�R�RRR-R2R5RdRgR\ReRt(((s5/usr/lib/python2.7/site-packages/salt/platform/win.pyt<module>sHS
S
			#								M		
				







		
				@
							8
			

Zerion Mini Shell 1.0