中小企業情シス稼業

2社連続で中小企業ひとり情シスやっています。 同じ境遇の方のお役に立てればと思います。

広告

2022年03月

Salesforceフローでユーザ設定を別のユーザにコピーする

the-air-show-streams

Salesforceってユーザのコピー(複写)ができない気がします。
IDaaS的なやつならできるのかな?そんな高級なものは弊社にはなく・・・

設定項目が多いと、GUIから大量にやるのは萎えます。
弊社は20個近く設定項目があります・・・

なのでSalesforceのフローでやってみました。クセがすごかったです!

※コピー先のユーザは、必須項目だけ入力して作成済みとします。


フローの概要

画面フローを使います。
1

ユーザ指定

設定のコピー元のユーザとコピー先のユーザを画面で指定できる画面を作ります。

画面のメインはルックアップコンポーネントです。
ユーザを選択できるようにします。


ルックアップコンポーネントは2つ置きます。
1つ目でコピー元のユーザを指定します。

何故かルックアップコンポーネントの参照先として、
「ユーザ」オブジェクトを直接指定できません。
「取引先」等、「ユーザ」オブジェクトを参照しているオブジェクトを指定する必要があります。

また「取引先」オブジェクトの場合、「取引先の所有者」項目は指定できません。
それ以外の「ユーザ」オブジェクトを参照している項目を指定する必要があります。
こういうハマりポイントが多く、Salesforceは泣きそうになります・・・

API参照名は後で使うので、わかりやすく「①」と表示しています。
実際には自由に名前をつけてください。
2


2つ目のルックアップコンポーネントでコピー先のユーザを指定します。
オブジェクトと項目は、1つ目のルックアップコンポーネントと同じで大丈夫です。

API参照名は後で使うので、わかりやすく「②」と表示しています。
実際には自由に名前をつけてください。
3

コピー元ユーザのレコードを取得

ユーザ指定画面でコピー元ユーザのレコードを持ってきてくれれば良いのですが、
IDしか取れない模様です。
仕方がないのでIDを基にレコードを取りに行きます。

※もっとシンプルなやり方があればお教えいただけるとありがたいです・・・


取得するレコードがあるオブジェクト:ユーザ
レコードの絞り込みを行う項目:ID
レコードの絞り込みを行う項目と一致する値:①のID

API参照名は後で使うので、わかりやすく「③」と表示しています。
実際には自由に名前をつけてください。
4

コピー先ユーザのレコードを更新

いよいよ処理のメイン部分です。
取得したコピー元ユーザのレコードを利用して、コピー先ユーザのレコードを更新します。

更新するレコードがあるオブジェクト:ユーザ
レコードの絞り込みを行う項目:ID
レコードの絞り込みを行う項目と一致する値:②のID
レコードに設定したい項目:ユーザオブジェクトの更新したい項目
レコードに設定したい値:③で利用したい項目

※レコードに設定したい項目は、複数指定できます。
5

終了メッセージ

処理が終わったか不安になるので、メッセージ画面を表示します。

※ポップアップが表示できれば良いのですが、やり方がわかりませんでした。
これも簡単なやり方があればお教えいただけるとありがたいです・・・

6



色々やり方はあると思いますが、ラクできればなんでもいいです。

Microsoft365を設定するPowerShellコマンドをExcelで生成する-Teamsチーム・チャネルにメンバー追加

road-runner-plays-hockey

Microsoft365の運用を効率化するPowerShellコマンドをExcelで生成するシリーズです。

今回はTeamsのチーム・チャネルにメンバー追加です。
GUIから大量にやるのは萎えます・・・

※PowerShellを実行する際は、まずは少ない件数で様子を見てください。
※PowerShellの実行により、不具合が起きても、当方は一切責任を負いません。自己責任でお願いします。

関連記事:
・Microsoft365を設定するPowerShellコマンドをExcelで生成する
配布リスト作成・メンバー追加削除
共有メールボックス作成・アクセス権追加削除
会議室・備品登録
Teamsチーム・チャネルにメンバー追加

Excelの準備

以下のようなパラメータシートを作ります。
screenshot_01


グループIDの確認方法は2つあります。

1つ目は、Microsoft Teams管理センターに行き、
[チーム]-[チームを管理]で表示されるチーム一覧を右にスクロールすると、
「グループID」という列があります。
screenshot_01

2つ目は、該当するチームの「…」をクリックし、
「チームへのリンクを取得」でクリップボードにリンクをコピーし、
メモ帳等に張り付けます。
長い文字列が表示されますが、その中に、
  groupId=12345678-1234-1234-1234-123456789abc
の部分があります。この「8桁-4桁--4桁--4桁-12桁」の文字列がグループIDです。
screenshot_01


上記のパラメータを参照するセルに、以下の式を入力します。

="Add-TeamUser -GroupId " & A2 & " -User " & C2 & " -Role Member"

上記はチームにメンバーを追加するコマンドを生成しています。

※所有者を追加する場合は、
  -Role Owner
とします。


同様に以下の式を入力したセルを追加します。

・チャネルにメンバーを追加
="Add-TeamChannelUser -GroupId " & A2 & " -DisplayName """ & B2 & """ -User " & $C2


式を入力すると、見た目は以下のようになります。
screenshot_02

※上記の設定内容は一例です。ご自身の環境に合わせて取捨選択し、各コマンドのパラメータも変更してください。

PowerShellコマンド実行

PowerShellを管理者権限で実行します。

※必要に応じ、事前にいろいろインストールしておいてください。初回だけでOKです。
・Microsoft OnlineService
Install-Module MSOnline
または、
Import-Module MSOnline –UseWindowsPowerShell  (PowerShell7の場合)
・Azure AD
Install-Module -Name AzureAD
・Exchange
Install-Module -Name ExchangeOnlineManagement
・SharePoint
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
・Teams
Install-Module -Name MicrosoftTeams -Force


ここからが本題の作業です

1.
以下のコマンドを実行し、Microsoft365に接続します。
Connect-MicrosoftTeams

2.
先ほど準備したExcelのPowerShellコマンドのセルをコピー(Ctrl+c)します。
複数セル選択しても大丈夫です。これにより一括登録が可能になります。
※あまり数が多いとエラーになる可能性があります。ご注意ください。
※パラメータが空白のセルもありますので、そこは避けてコピーしてください。
screenshot_03

3.
PowerShellのウインドウで貼り付け(Ctrl+v)します。
screenshot_04

4.
Enterキーを押すと、コマンドが実行されます。
※処理に時間がかかることがあります。プロンプトが表示され、カーソルが点滅するまで気長に待ちます。

5.
他のコマンドも同様(セルのコピー→貼り付け→Enter)に実行します。

6.
PowerShellのウインドウで以下のコマンドを実行し、Exchange Onlineを切断します。
Disconnect-MicrosoftTeams



Teamsの不具合で、GUIでは設定できない場合も、上記の方法だと設定できます。

Microsoft365を設定するPowerShellコマンドをExcelで生成する-会議室・備品登録

busy-modern-office

Microsoft365の運用を効率化するPowerShellコマンドをExcelで生成するシリーズです。

今回はExchange Onlineの会議室・備品追加です。
GUIから大量にやるのは萎えます・・・

※PowerShellを実行する際は、まずは少ない件数で様子を見てください。
※PowerShellの実行により、不具合が起きても、当方は一切責任を負いません。自己責任でお願いします。

Excelの準備

以下のようなパラメータシートを作ります。
screenshot_01



上記のパラメータを参照するセルに、以下の式を入力します。

="New-Mailbox -Name " & C2 & " -DisplayName """ & A2 & """ –" & B2

上記は会議室・備品を作成するコマンドを生成しています。


同様に以下の式を入力したセルを追加します。

・会議室・備品へのアクセス権変更
="Set-MailboxFolderPermission -Identity """& A2 &":\Calendar"" -User ""Default"" -AccessRights Reviewer"

・会議室・備品の設定変更
="Set-CalendarProcessing -Identity """ & A2 & """ -DeleteSubject 0 -AddOrganizerToSubject 1 -DeleteComments 0 -RemovePrivateProperty $false -EnforceSchedulingHorizon $false -MaximumDurationInMinutes 0"


式を入力すると、見た目は以下のようになります。
screenshot_02

※上記の設定内容は一例です。ご自身の環境に合わせて取捨選択し、各コマンドのパラメータも変更してください。

PowerShellコマンド実行

PowerShellを管理者権限で実行します。

※必要に応じ、事前にいろいろインストールしておいてください。初回だけでOKです。
・Microsoft OnlineService
Install-Module MSOnline
または、
Import-Module MSOnline –UseWindowsPowerShell  (PowerShell7の場合)
・Azure AD
Install-Module -Name AzureAD
・Exchange
Install-Module -Name ExchangeOnlineManagement
・SharePoint
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
・Teams
Install-Module -Name MicrosoftTeams -Force


ここからが本題の作業です

1.
以下のコマンドを実行し、Microsoft365に接続します。
Connect-ExchangeOnline

2.
先ほど準備したExcelのPowerShellコマンドのセルをコピー(Ctrl+c)します。
複数セル選択しても大丈夫です。これにより一括登録が可能になります。
※あまり数が多いとエラーになる可能性があります。ご注意ください。
※パラメータが空白のセルもありますので、そこは避けてコピーしてください。
screenshot_03

3.
PowerShellのウインドウで貼り付け(Ctrl+v)します。
screenshot_04

4.
Enterキーを押すと、コマンドが実行されます。
※処理に時間がかかることがあります。プロンプトが表示され、カーソルが点滅するまで気長に待ちます。

5.
他のコマンドも同様(セルのコピー→貼り付け→Enter)に実行します。

6.
PowerShellのウインドウで以下のコマンドを実行し、Exchange Onlineを切断します。
Disconnect-ExchangeOnline



Exchange Onlineの不具合で、GUIでは設定できない場合も、上記の方法だと設定できます。

Microsoft365を設定するPowerShellコマンドをExcelで生成する-共有メールボックス作成・アクセス権追加削除

fast-bike-racing

Microsoft365の運用を効率化するPowerShellコマンドをExcelで生成するシリーズです。

今回はExchange Online共有メールボックスの作成、アクセス権追加・削除です。
GUIから大量にやるのは萎えます・・・

※PowerShellを実行する際は、まずは少ない件数で様子を見てください。
※PowerShellの実行により、不具合が起きても、当方は一切責任を負いません。自己責任でお願いします。

Excelの準備

以下のようなパラメータシートを作ります。
screenshot_01


上記のパラメータを参照するセルに、以下の式を入力します。

="New-Mailbox -Name " & A2 & " -DisplayName " & A2 & " -PrimarySmtpAddress " &B2 & "  -Shared"

上記は共有メールボックスを作成するコマンドを生成しています。

※共有メールボックスにアクセス追加、共有メールボックスからアクセス削除したいユーザは、1つずつ登録します。よって上記パラメータシートA列の値は重複しています。
共有メールボックスを作成する場合、PowerShellコマンドは1つだけ実行すればOKです。


同様に以下の式を入力したセルを追加します。

・共有メールボックスに送信済みアイテムコピー
="Set-Mailbox " & A2 & " -MessageCopyForSentAsEnabled $True -MessageCopyForSendOnBehalfEnabled $True"

・共有メールボックスにフルアクセス付与
="Add-MailboxPermission -Identity  "&A2&" -user "&C2 & " -AccessRights FullAccess"

・共有メールボックス所有者として送信権限付与
="Add-RecipientPermission -Identity "&A2&" -Trustee "&C2 & "  -AccessRights SendAs "

・共有メールボックスへのフルアクセス削除
="Remove-MailboxPermission -Identity  "&A2&" -user "&D2 & " -AccessRights FullAccess"

・共有メールボックス所有者として送信権限削除
="Remove-RecipientPermission -Identity "&A2&" -Trustee "&D2 & "  -AccessRights SendAs "


式を入力すると、見た目は以下のようになります。
screenshot_02

screenshot_03

screenshot_04

※上記の設定内容は一例です。ご自身の環境に合わせて取捨選択し、各コマンドのパラメータも変更してください。

PowerShellコマンド実行

PowerShellを管理者権限で実行します。

※必要に応じ、事前にいろいろインストールしておいてください。初回だけでOKです。
・Microsoft OnlineService
Install-Module MSOnline
または、
Import-Module MSOnline –UseWindowsPowerShell  (PowerShell7の場合)
・Azure AD
Install-Module -Name AzureAD
・Exchange
Install-Module -Name ExchangeOnlineManagement
・SharePoint
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
・Teams
Install-Module -Name MicrosoftTeams -Force


ここからが本題の作業です

1.
以下のコマンドを実行し、Microsoft365に接続します。
Connect-ExchangeOnline

2.
先ほど準備したExcelのPowerShellコマンドのセルをコピー(Ctrl+c)します。
複数セル選択しても大丈夫です。これにより一括登録が可能になります。
※あまり数が多いとエラーになる可能性があります。ご注意ください。
※パラメータが空白のセルもありますので、そこは避けてコピーしてください。
screenshot_05

3.
PowerShellのウインドウで貼り付け(Ctrl+v)します。
screenshot_06

4.
Enterキーを押すと、コマンドが実行されます。
※処理に時間がかかることがあります。プロンプトが表示され、カーソルが点滅するまで気長に待ちます。

5.
他のコマンドも同様(セルのコピー→貼り付け→Enter)に実行します。

6.
PowerShellのウインドウで以下のコマンドを実行し、Exchange Onlineを切断します。
Disconnect-ExchangeOnline



Exchange Onlineの不具合で、GUIでは設定できない場合も、上記の方法だと設定できます。

Microsoft365を設定するPowerShellコマンドをExcelで生成する-配布リスト作成・メンバー追加削除

commuter-train-speeds-past-in-city

Microsoft365の運用を効率化するPowerShellコマンドをExcelで生成するシリーズです。

今回はExchange Online配布リストの作成、メンバー追加・削除です。

配布リストを大量に作るケースはあまりないかもしれませんが、しれっと依頼が来るかもしれないので備えておきます。
GUIから大量にやるのは萎えます・・・

※PowerShellを実行する際は、まずは少ない件数で様子を見てください。
※PowerShellの実行により、不具合が起きても、当方は一切責任を負いません。自己責任でお願いします。

Excelの準備

以下のようなパラメータシートを作ります。
screenshot_01


上記のパラメータを参照するセルに、以下の式を入力します。

="New-DistributionGroup -Type Distribution -Name  """ & A2 & """ -PrimarySmtpAddress """ &B2 & """  -RequireSenderAuthenticationEnabled $false"

上記は配布リストを作成するコマンドを生成しています。

※配布リストに追加、配布リストから削除したいユーザは、1つずつ登録します。よって上記パラメータシートA列の値は重複しています。
配布リストを作成する場合、PowerShellコマンドは1つだけ実行すればOKです。


同様に以下の式を入力したセルを追加します。

・配布リストへのメンバー追加
="Add-DistributionGroupMember -Identity """&B2&""" -Member """&C2 & """"

・配布リストからのメンバー削除
="Remove-DistributionGroupMember -Identity """&B2&""" -Member """&D2& """"


式を入力すると、見た目は以下のようになります。
screenshot_02

※上記の設定内容は一例です。ご自身の環境に合わせて取捨選択し、各コマンドのパラメータも変更してください。

PowerShellコマンド実行

PowerShellを管理者権限で実行します。

※必要に応じ、事前にいろいろインストールしておいてください。初回だけでOKです。
・Microsoft OnlineService
Install-Module MSOnline
または、
Import-Module MSOnline –UseWindowsPowerShell  (PowerShell7の場合)
・Azure AD
Install-Module -Name AzureAD
・Exchange
Install-Module -Name ExchangeOnlineManagement
・SharePoint
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
・Teams
Install-Module -Name MicrosoftTeams -Force


ここからが本題の作業です

1.
以下のコマンドを実行し、Microsoft365に接続します。
Connect-ExchangeOnline

2.
先ほど準備したExcelのPowerShellコマンドのセルをコピー(Ctrl+c)します。
複数セル選択しても大丈夫です。これにより一括登録が可能になります。
※あまり数が多いとエラーになる可能性があります。ご注意ください。
※パラメータが空白のセルもありますので、そこは避けてコピーしてください。
screenshot_01

3.
PowerShellのウインドウで貼り付け(Ctrl+v)します。
screenshot_04

4.
Enterキーを押すと、コマンドが実行されます。
※処理に時間がかかることがあります。プロンプトが表示され、カーソルが点滅するまで気長に待ちます。

5.
他のコマンドも同様(セルのコピー→貼り付け→Enter)に実行します。

6.
PowerShellのウインドウで以下のコマンドを実行し、Exchange Onlineを切断します。
Disconnect-ExchangeOnline



Exchange Onlineの不具合で、GUIでは設定できない場合も、上記の方法だと設定できます。

広告
広告
プロフィール
40過ぎて何とか結婚し、2015年末に子どもができた、左利き初老オヤジです。日本史を再勉強中。株、囲碁、鼻炎、眼振少々。中小企業ハッタリテキトー情シス(社内SE)。Access/ExcelVBAしか武器(?)はなし。情試はPM/SM/SA/NW。 ベンダーSEを数年やり、その後情シスに転職しました。 情シスでは中小企業ばかり3社見てきました。現職と前職ではひとり情シスです。 会社では「いないとヤバいが、評価はしない」という扱いです。 ノウハウを伝える相手もいないので、せっかくなので自分なりのコツを公開したいと思います。 同じような環境で苦労されている方のお役に立てればと思います。 「情シスの格を上げる」が目標です。 Twitterをフォローいただくと、ブログ更新時に通知されます。http://twitter.com/suiton_everyday よろしくお願いいたします。
お問い合わせ
お問い合わせはこちら
プライバシーポリシー
・当サイトに掲載されている広告について
当サイトでは、第三者配信の広告サービス(Googleアドセンス)を利用しています。
このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 『Cookie』(氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。
またGoogleアドセンスに関して、このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、こちらをクリックしてください。

・当サイトが使用しているアクセス解析ツールについて
当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。
このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。
このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。
この規約に関して、詳しくはこちら、またはこちらをクリックしてください。