File: //lib/python3/dist-packages/samba/__pycache__/gpclass.cpython-310.pyc
o
�/aV � @ sX d dl Z d dlZd dlZd dlZd dlZe j�d d� d dlmZ d dl m
Z
d dlmZ d dl
mZ d dlmZmZ d dlm mZ d dlZd dlmZ d d lmZ d d
lmZ d dlmZ d dlm Z d dl!m"Z" d d
l#m$Z$ d dl%m&Z& d dlm'Z' d dlm(Z( d dl)m*Z*m+Z+ d dl,m-Z- z
d dl.m/Z/ e/dd�Z0W n e1y� G dd� d�Z0Y nw G dd� d�Z2G dd� d�Z3G dd� de4�Z5G dd� de5�Z6G dd � d e5�Z7G d!d"� d"e5�Z8 d#d$� Z9 d%d&� Z:d'd(� Z;d)d*� Z<d+d,� Z=d-d.� Z>d/d0� Z?dHd2d3�Z@d4d5� ZAdId7d8�ZBd9d:� ZCd;d<� ZDd=d>� ZEd?d@� ZF AdJdBdC�ZGdKdDdE�ZHdKdFdG�ZIdS )L� Nz
bin/python)�
NTSTATUSError)�ConfigParser)�StringIO)� get_bytes)�ABCMeta�abstractmethod)�Net)�nbt)�libsmb_samba_internal)�param)�LoadParm)�UUID)�NamedTemporaryFile)�preg)�misc)�ndr_pack�
ndr_unpack)�SMB_SIGNING_REQUIRED)�Enum�GPOSTATEzAPPLY ENFORCE UNAPPLYc @ s e Zd ZdZdZdZdS )r � � � N)�__name__�
__module__�__qualname__�APPLY�ENFORCE�UNAPPLY� r r �//usr/lib/python3/dist-packages/samba/gpclass.pyr / s c @ sZ e Zd ZdZddd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� ZdS )�gp_loga[ Log settings overwritten by gpo apply
The gp_log is an xml file that stores a history of gpo changes (and the
original setting value).
The log is organized like so:
<gp>
<user name="KDC-1$">
<applylog>
<guid count="0" value="{31B2F340-016D-11D2-945F-00C04FB984F9}" />
</applylog>
<guid value="{31B2F340-016D-11D2-945F-00C04FB984F9}">
<gp_ext name="System Access">
<attribute name="minPwdAge">-864000000000</attribute>
<attribute name="maxPwdAge">-36288000000000</attribute>
<attribute name="minPwdLength">7</attribute>
<attribute name="pwdProperties">1</attribute>
</gp_ext>
<gp_ext name="Kerberos Policy">
<attribute name="ticket_lifetime">1d</attribute>
<attribute name="renew_lifetime" />
<attribute name="clockskew">300</attribute>
</gp_ext>
</guid>
</user>
</gp>
Each guid value contains a list of extensions, which contain a list of
attributes. The guid value represents a GPO. The attributes are the values
of those settings prior to the application of the GPO.
The list of guids is enclosed within a user name, which represents the user
the settings were applied to. This user may be the samaccountname of the
local computer, which implies that these are machine policies.
The applylog keeps track of the order in which the GPOs were applied, so
that they can be rolled back in reverse, returning the machine to the state
prior to policy application.
Nc C sp t j| _|| _|| _|rt�|�| _nt�d�| _|| _ | j�
d| �}|du r6t�| jd�}||jd<