Custom Engine Agents in Microsoft 365 Copilot

Agents in BizChat has been available for some time already, but now there is an upcoming update to Agents. The introduction of “ custom engine agents ” in Microsoft 365 Copilot! These specialized agents can be built on any large language model (LLM), toolchain, or orchestration tool, tailored specifically for your domain or tenant workflows. Initially supported in Microsoft Teams, this feature will soon be available in Microsoft 365 Copilot Business Chat ( BizChat ).   The introduction of Custom engine agents enables your organization to create customized experiences using your own AI systems and orchestrators. You can design unique prompts, connect to any LLM, and integrate these custom agents with Microsoft 365 Copilot. After the rollout, users will be able to access these agents, provided they are enabled and deployed in the Microsoft 365 admin center under the Copilot tab.   You can read more about the feature on this page . Eligible users can create agents using Micros...

Enable or edit Lync users based on AdGroupMembership

In my previous blogposts on Lync user management using PowerShell, I have demonstrated how you can edit  by using an OU search string, or import a csv file. I thought maybe it would be nice to show how to add/manage Lync users by searching for a AD Group. It might be a bit tricky, but it is possible.

I have created a tiny script to prompt the admin for the group name, find users within that group, enable them for Lync and finally enabling the user for Enterprise voice (Presuming the phone attribute in AD is populated in the correct E.164 format, or the script might need adjustment) and setting a specific policy (just because I can, not because I have to).

Something worth mentioning, the set-csuser doesn't seem to like being pipelined to, which is why the get-adgroup is run twice.

The first part of the script is not doing anything, it's just a reminder to import the ad module. The first thing you have to do, is to enter the ADGroup Name (the display name of the group).


When the ADGroup is known to the script, we move on to enabling those users for Lync (skip this part if they are already enabled, but you want to edit users). This is quite straight forward.


But I'm not done yet. I also want to enable the user for voice, and grant him a client policy (These are just examples. Your imagination of PS command combinations is your only limitation).

Doing all I wanted to gave me an unexpected problem. As it turns out, the "get-adgroupmember" will not return the phone property of the user, and it became a challenge to figure out a way to get that property. That is why there are two foreach statements with in this last section. After we get hold of the adgroupmemner name, we can run the get-csaduser with that name (A bit dirty? I know, but it works).


As you can see, the script is fetching the $_.phone attrib of the user, and uses it to create the LineURI after adding the "tel:" prefix.

If you want to take a closer look at the actual script, it can be found right here. Have fun playing with it :)