私はPythonにはかなり新しく、ADサーバをクエリしていくつかの属性(username、firstName、lastName)に基づいてユーザが存在するかどうかを確認しようとしています。そのユーザーが存在している場合は、そのグループに特定のグループに属しているかどうかを確認し、そうでない場合は、そのグループに追加します。私はそれらを追加するグループと一緒に、私はユーザーの情報を格納していYAMLファイルを、持っている:ここでPyAD ADクエリが作成されていない場合に存在するかどうかを確認します
ADUser:
firstName: <value>
lastName: <value>
username: <value>
email: <value>
group: <value of group I want them to join>
YAMLファイルを解析するためのコードです:
with open("AD.yaml", 'r') as stream:
try:
print(yaml.load(stream))
except yaml.YAMLError as exc:
print(exc)
私はADにアクセスし、検索とユーザー作成とグループ設定を実行するPyADライブラリを使用しています。これらは、私は、ユーザーの作成に使用する方法である、グループの追加や照会が(私がしようとしている
q = pyad.adquery.ADQuery()
q.execute_query(
attributes = (["firstName", <value>],["lastName", <value>],["username", <value>],["email", <value>])
where_clause = "objectClass = '*'",
base_dn = "OU=users, DC=domain, DC=com"
)
:https://zakird.com/pyad/index.html
これは私が執筆を開始した内容れる:ここでのドキュメントへのリンクです)これらは良く見えるかどうかを把握するために、私は現在持っているYAMLでそれらを使用するために正確にどのように:
#User Creation
create_user(name, password=None, upn_suffix=None, enable=True, optional_attributes={})
#Find Members of a group
get_memberOfs(recursive=False, scope='all')¶
#Add an object to a group
add_to_group(group)
#Query AD
q = pyad.adquery.ADQuery()
q.execute_query(
attributes = ["distinguishedName", "description"],
where_clause = "objectClass = '*'",
base_dn = "OU=users, DC=domain, DC=com"
)
誰もこれを設定する必要がありますどのように私を指すことができます場合、私はちょうど思ったんだけど。実際のADサーバーにアクセスすることについて心配しないでください。私はちょうど箱自体からこれを実行することを想像しています。
with open("AD.yaml", 'r') as stream:
try:
print(yaml.load(stream))
except yaml.YAMLError as exc:
print(exc)
def create_User(new_user, group,):
q = pyad.adquery.ADQuery()
user = q.execute_query(
attributes = ["firstName", "description"],
where_clause = "objectClass = '*'",
base_dn = "OU=users, DC=domain, DC=com"
)
if user == true:
if user.is_member_of(group, "")
logging.info('User is already created and is member of Specified AD Group')
else
user.add_to_group(user, group)
else
new_user = ADUser.create("%firstName", "%lastname", "")
group = ADGroup.from_dn(group)
group.add_member(new_user)
したと
を移動して行う1で複数のユーザーを登録します両方の 'with'ステートメントにインデントブロックがありませんでした。私はこれがあなたのこのサイトのフォーマットに慣れていないためだと思って、それを修正しようとしました。結果がコンピュータのものと異なる場合は、編集をロールバックしてください。正しいコードをここに入力してください。 – Anthon