LoginSignup
2
0

More than 1 year has passed since last update.

Power Automate DesktopでActive Drectoryに新規ユーザーを作成するフローを構築する。

Last updated at Posted at 2021-12-08

概要

この記事では、Power Automate Desktopのデスクトップフローを使用して
ADサーバーに接続し、新規ユーザー作成を行ってみたいと思います。

Power Automate Desktopには、Active Drectoryの操作を行うアクションが用意されています。
今回はその中の3つのアクションを使用してフローを作成してみたいと思います。
image.png

検証環境の構成イメージです。
Azure 仮想ネットワーク上に接続先となる
ADサーバーとデスクトップフローを実行するロボサーバーを構築しています。

流れとしてはFormsから登録申請があった場合にクラウドフローが実行され、
申請されたユーザー情報をデスクトップフローに受け渡して
ユーザー作成が行われる というものです。
登録が正常に完了した場合、Teamsによって通知を行います。
image.png

※クラウドフローの作成手順は割愛しますが、フロー内容は以下の通りです。
image.png

前提条件

本手順を行う前に前提条件として、下記2つが必要となります。
・Power Automate Desktopの有償ライセンス
※私は期間限定ですが試用版で構築しました!
・Power Automate Desktopを動かすマシンをPower Automateに登録できていること
(下図のようにPower Automateの「監視」→「マシン」に実行するマシンが登録されている状態です)
image.png

手順(1)入出力変数を作成する

Power Automate Desktopで
新しくフローを作成します。
image.png

フローデザイナー画面が表示されたら、右側にある「入出力変数」枠内の
追加ボタンをクリックします。
image.png

クラウドフローから値を受け取るための入力変数から作成するので、
「入力」を選択します。
image.png

入力変数の作成画面が表示されます。
変数名は初期値で「NewInput」となっているので、任意の値に変更します。
image.png

作成後、入出力変数に追加されたことを確認します。
image.png

同じ手順で、「LastName」の入力変数も作成します。
image.png

続いて、出力変数を作成します。
※出力変数の設定は必須ではありません。
image.png

出力変数には、ユーザー作成完了後にTeamsで送信する
メッセージを格納したいと思いますので、変数名・外部名を「TeamsMessage」として作成します。
image.png

出力変数が作成されたことを確認します。
image.png

手順(2)Active Directoryを操作するアクション設定

アクションの一覧から、「サーバーに接続」アクションを選択します。
image.png

設定画面で、各設定値を入力します。
LDAPパスは図に記載されていると通り、
「LDAP://<ドメイン名>」の形式で入力してください。
ユーザー名は「<ドメイン名>¥<ユーザー名>」の形式で入力してください。
※Active Directoryにユーザーを作成する権限のあるユーザーを指定してください。
image.png

アクションの設定後、テスト実行をしてみましょう。
image.png

続いて、アクションの一覧から、
[Active Directory]-[ユーザー]の配下にある「ユーザーを作成」を選択します。
image.png

各設定値を入力します。
親ディレクトリエントリ:
アクション「サーバーに接続」を作成した際に生成された変数
「%ParentDirectoryEntry%」
が自動的に設定されます。
場所:ユーザーを作成する場所を指定します。
指定方法は図の通り、「CN=xxx,DC=xxx,DC=xxx」の形式で入力します。
名:入力変数「FirstName」を設定します。
姓:入力変数「LastName」を設定します。
ユーザー名:入力変数「FirstName」と「LastName」を足した値を設定しています。
パスワード:作成するユーザーに設定するパスワードを入力します。
image.png

続いて、作成したユーザー情報にメールアドレスを設定したいと思います。
アクションの一覧から、
[Active Directory]-[ユーザー]の配下にある「ユーザー情報の更新」を選択します。
image.png

アクション「サーバーに接続」を作成した際に生成された変数
「%ParentDirectoryEntry%」
が自動的に設定されます。
識別名:情報を更新するユーザーの識別名を指定します。
指定方法は図の通り、「CN=<ユーザー名>,CN=xxx,DC=xxx,DC=xxx」
の形式で入力します。
ユーザーのメールアドレス:今回は入力変数「FirstName」「LastName」と
ドメイン名を組合わせた値を設定しています。
image.png

Active Directoryを操作するアクション設定は以上です。
image.png

手順(3)Teamsで送信するメッセージの設定

出力変数「TeamsMessage」の設定を行いたいと思います。
アクションの一覧から、「変数の設定」を選択します。
image.png

変数の設定画面で、設定する変数「TeamsMessage」を選択し、
「宛先」欄に任意のメッセージを入力します。
image.png

これでデスクトップフローの設定は完了です。保存しておきましょう。
image.png

手順(4)クラウドフローの設定・確認

作成したデスクトップフローをトリガー実行(Formsから申請を受けたときに実行)する場合
クラウドフローで対象のデスクトップフローを指定する必要があります。

実行するデスクトップフローの実行は
「デスクトップ用Power Automateで構築したフローを実行する」というアクションを設定します。
Desktopフロー:作成したデスクトップフローを選択する
実行モード:マシンの実行状態を指定します。
今回は「非アテンド型」(サインアウトされている状態)を指定します。
(アテンド型で設定するとうまくいかず・・・)
FirstName/LastName:デスクトップフローで作成した入力変数名が表示されるので、
Formsから受け取った値を設定します。
image.png

アクション「チャットまたはチャネルでメッセージを投稿する」で、
対象となるTeamsのチーム、チャネル、メッセージを設定します。
メッセージにはデスクトップフローで出力変数として設定した
「TeamsMessage」
を設定しています。
image.png

手順(5)動作を見てみましょう

作成したフローがちゃんと動くか確認してみましょう。
Formsで新規ユーザー登録を行ってみます。
FirstName:Merry
LastName:Xmas
image.png

Formsを実行後、クラウドフローが実行されていることを確認します。
image.png

正常に実行が完了したようです。
image.png

ADサーバーに接続し、Active Directoryのユーザーを確認すると
無事追加されていました。
image.png

メールアドレスも大丈夫そうです。
image.png

Teamsの指定したチャネルにもメッセージが届いていました。
image.png

所感

今回の手順はかなりべた書きにしてしまいましたが、
各設定値は変数に入れたほうが確実に良いです。(省いて申し訳ありません。)

もっとしっかり作るのであれば条件分岐を入れて
ユーザーが二重登録されていないか、同姓同名のユーザーの場合のフローなどは
設定する必要がありますね。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0