tag:blogger.com,1999:blog-33485016477486962592024-03-13T20:57:44.773-07:00UC Clouds with a Chance of ScriptingHere is where you will find all my ideas, experience, and doodles around technology in the cloud as well as some fun scripts I created/modified during my 27 odd years of working within the wonderful world of IT.Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-3348501647748696259.post-60551833757485599732021-09-02T02:00:00.006-07:002021-09-02T16:46:44.604-07:00Who "Touched" My Files !?<div dir="ltr" style="text-align: left;" trbidi="on">
<p>As the saying goes, one thing leads to another. I recently had a request to flag any access to a SharePoint folder and alert on it. There are many ways (as I have found) to accomplish this. Depending on who wants to be alerted, and what kind of licensing you have in Office 365, will depend on the path you take.<br />
</p>
<h3 style="text-align: left;">Audit Log Search</h3>
<p>The easiest way to do this (albite being very broad, and not very customizable), is using the Audit log curtesy of Microsoft Auditing Service. To set this up, just simply follow the instructions <a href="https://aka.ms/m365audit" target="_blank">here</a> to setup the "Admin Role" to view the audit logs (please don't ask why this is in Exchange).
</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-8-y0xk_rfsk/YTBSZ14-okI/AAAAAAAASao/G3AE4bBT-wUwO8fePRjc-Ozd4ZSuV5TnACLcBGAsYHQ/s568/AuditLogRole.png" style="margin-left: 1em; margin-right: 1em;">
<img border="0" data-original-height="538" data-original-width="568" height="303" src="https://1.bp.blogspot.com/-8-y0xk_rfsk/YTBSZ14-okI/AAAAAAAASao/G3AE4bBT-wUwO8fePRjc-Ozd4ZSuV5TnACLcBGAsYHQ/s320/AuditLogRole.png" width="320" /></a></div>
<p>Once that is done, you can create an <a href="https://compliance.microsoft.com/auditlogsearch?viewid=Retention" target="_blank">audit retention policy</a> in the Compliance Centre (at the time of writing 😜) to retain the logs for however many days you need (based on your compliance policies).
</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-0P09s6eql5o/YTBTAD_pNzI/AAAAAAAASa4/uQtx5GkLufQBW3Lm5Tf0IwYyJgRbhIDzgCLcBGAsYHQ/s564/AuditRetention.png" style="margin-left: 1em; margin-right: 1em;">
<img border="0" data-original-height="498" data-original-width="564" height="283" src="https://1.bp.blogspot.com/-0P09s6eql5o/YTBTAD_pNzI/AAAAAAAASa4/uQtx5GkLufQBW3Lm5Tf0IwYyJgRbhIDzgCLcBGAsYHQ/s320/AuditRetention.png" width="320" /></a></div>
<p>Then use the search option to search through the logs as required...
</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-52zeWWM751w/YTBT8BfESjI/AAAAAAAASbA/D7e_KlYkwpku7cfBzD6GKlgOM__pXh9QACLcBGAsYHQ/s1056/AuditSearch.png" style="margin-left: 1em; margin-right: 1em;">
<img border="0" data-original-height="508" data-original-width="1056" height="154" src="https://1.bp.blogspot.com/-52zeWWM751w/YTBT8BfESjI/AAAAAAAASbA/D7e_KlYkwpku7cfBzD6GKlgOM__pXh9QACLcBGAsYHQ/s320/AuditSearch.png" width="320" /></a></div>
<br />
<h3 style="text-align: left;">Cloud App Security</h3>
<div class="separator" style="text-align: left;">
<p>Another way to do this is Microsoft CAS (Cloud App Security). You may create an Activity Filter and set an alert from the GUI which will flag any such access like the below.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-CMDM0VZkTvY/YTCSi_VXqZI/AAAAAAAASbM/NdyB-jGl5h0sgHOoiKsFFjdhP_NA0OHVACLcBGAsYHQ/s968/ActivityFilter.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="276" data-original-width="968" height="91" src="https://1.bp.blogspot.com/-CMDM0VZkTvY/YTCSi_VXqZI/AAAAAAAASbM/NdyB-jGl5h0sgHOoiKsFFjdhP_NA0OHVACLcBGAsYHQ/s320/ActivityFilter.png" width="320" /></a></div><p>However, if you want to be more discrete, you can use the MCAS API access method to run a PowerShell script that will do this for you either regularly or on-demand.</p>
<p><b>Note: </b>Before you can run the script, you will need to install the MCAS module, create a CAS API Token, and save the provided secret key and URL to be used by the script.
</p>
<b style="background-color: white; color: #666666; font-family: verdana, sans-serif; font-size: 13.2px;">Download</b>
<span face="verdana, sans-serif" style="background-color: white; color: #666666; font-size: 13.2px;">v.0.1 - 2017-09-13 -<a href="https://1drv.ms/u/s!AtDr5rpLIQpzg8R8xqGEVOZRMKvQkA" rel="nofollow" target="_blank">get-McasFileAccess.ps1</a></span></div></div>Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-63512552438543620842020-07-27T17:31:00.005-07:002022-02-27T21:54:19.416-08:00Teams Focusing Status<div><font face="verdana"><br /></font></div><div style="text-align: center;"><font face="verdana"><img alt="Focusing" height="238" src="data:image/png;base64,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AAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoJAOIIcRQI8HvZY8CftFDBQMwAAMwAAMwAAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoJAOIIcRQI8HvZY8CftFDBQMwAAMwAAMwAAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoJAOIIcRQI8HvZY8CftFDBQMwAAMwAAMwAAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoJAOIIcRQI8HvZY8CftFDBQMwAAMwAAMwAAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoJAOIIcRQI8HvZY8CftFDBQMwAAMwAAMwAAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoJAOIIcRQI8HvZY8CftFDBQMwAAMwAAMwAAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoJAOIIcRQI8HvZY8CftFDBQMwAAMwAAMwAAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoJAOIIcRQI8HvZY8CftFDBQMwAAMwAAMwAAODyQBiCDGEGKInCAZgAAZgAAZgAAZgoJEMIIYQQ40En96bwey9odwoNxiAARiAARiAgV4ygBhCDCGG6AmCARiAARiAARiAARhoy8DFF10QPnH2WWHbCRPauu2lYKnSL8QQYmhoYK6youA3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5pttFuy72aabBn033WST7LvJxhuHjTfaKGyk74Ybhg032CBs8K53hXe9853hneuvj3G8TfnKQMNBXsEADMAADMAADMBAsxhADNVIDJr4ibcmhLRFDDWrgtIgU94wAAMwAAMwAAMwUB0Da6y/3vjAt155sN748WG98eNGfMePGxfGj1u39R237jpB33XXWTv7rrP2WkHftddaM6yl75rvCGu+438YGWJkCAZgAAZgAAZgAAZgAAZyGEAM1VAMIoaqU//0rJC3MAADMAADMAADMAADxsAabxneGongW5c8GD9+fHhrJEijQW99x40bF8atu27ru+46GhVaJ6yz9trZd+21NCq0VlhrTY0KrRnWfMc7wjv+h5EhA50tjR4MwAAMwAAMwAAMwEDMwBrrr7de4FuvPEiJMhNFtjVhlBJFa70tiiSI4gLnP40ADMAADMAADMAADMAADLzFwBpacYxvvfIgJU69QPIjR14UrfP2SFE2QvS2IAJ0GjsYgAEYgAEYgAEYgAEYSDOwhpZg5luvPEiJUy+QRggjTZ97ewqdHyUyQQT4afDJF/IFBmAABmAABmAABmBgDb2Thm+98iAlTr1AMmG03nrrZc96pabO6VkiCSIqOZUcBmAABmAABmAABmAABtIMrLGBXtLJt1Z58C69NDX6vlMvUX37u/766wd9MzG03nohmzY3fvxbI0TjxoV11103aMrc2muvjRjKWUaRBiHdIJAv5AsMwAAMwAAMwECTGFhjww02CHzrlQepkTo/WmSjRK0RordXAtQIkZ8yp9GhJsFMWmm8YQAGYAAGYAAGYAAGOmEAMVRDMYgYohJ3UolxCy8wAAMwAAMwAAMw0B0DiCHEEKNHTKWDARiAARiAARiAARhoJAOIIcRQI8Gn96S73hPyjXyDARiAARiAARgYJgYQQ4ghxBA9QTAAAzAAAzAAAzAAA41kADGEGGok+MPUo0Fa6KGDARiAARiAARiAge4YQAwhhhBD9ATBAAzAAAzAAAzAAAw0kgHEEGKokeDTe9Jd7wn5Rr7BAAzAAAzAAAwMEwP/HzFJFGSk++d6AAAAAElFTkSuQmCC" title="Focusing Status" width="400" /></font></div><div style="text-align: left;"><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;"><font face="verdana"><br /></font></span></div><div style="text-align: left;"><font face="verdana"><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;">I love the new "Focusing" mode in Teams; this came by surprise as the feature was lit up in </span><a href="http://aka.ms/whatsnewinteams" rel="noopener nofollow" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; border: 0px none; box-sizing: border-box; color: #665ed0; margin: 0px; overflow-wrap: break-word; padding: 0px; touch-action: manipulation; vertical-align: baseline; white-space: pre-wrap;" target="_blank">August 2019</a><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;"> but simply put your status to "Do Not Disturb". I haven't seen an announcement about this, but apparently, there is now a new specific status called "Focusing" which is slightly different from the traditional "Do Not Disturb" status.</span></font></div><div style="text-align: left;"><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;"><font face="verdana"><br /></font></span></div><div style="text-align: left;"><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;"><font face="verdana">Setting this up is currently restricted to using <a href="https://myanalytics.microsoft.com/?v=focus" target="_blank">MyAnalytics</a> to subscribe to a "Focus" plan (which there is only one right now). As you may already know, this wouldn't go down well with me; I needed to know how this actually works, and try and have my own plan.</font></span></div><div style="text-align: left;"><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;"><font face="verdana"><br /></font></span></div><div style="text-align: left;"><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;"><font face="verdana">Creating a new meeting invite with the exact same options as the one created by MyAnalytics didn't do the job, so I dived into the underlying meta-data of the meeting invite; and figured out the three pieces of information that Teams looks for to determine if this meeting item is a "Focusing" entry.</font></span></div><div style="text-align: left;"><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;"><font face="verdana"><br /></font></span></div><div style="text-align: left;"><ul style="text-align: left;"><li><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;"><font face="verdana">Most importantly, this meeting needs to only have one person "YOU"</font></span></li><li><font face="verdana"><span color="rgba(0, 0, 0, 0.75)" style="background-color: white; white-space: pre-wrap;">The internal flag "</span>IsDoNotDisturbTime" has to be set to true</font></li><li><font face="verdana">The internal flag "IsBookedFreeBlocks" has to be set to true</font></li></ul><div><font face="verdana">To help anyone who wants to set their own schedule, away from MyAnalytics, I have written a little VBA snippet that can be used in outlook after selecting a "focus" meeting that you have created yourself.</font></div><div><font face="verdana"><br /></font></div><div><font face="verdana"><b><u>Download</u></b></font></div><div><font face="verdana">v.0.0.2 - 2022.02.28 - </font><a href="https://github.com/Pher0ah/TeamsFocusing/blob/main/ToggleFocusing.vba" style="font-family: verdana;" target="_blank">ToggleFocusing.vba</a></div></div>Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-4932897112095397712020-05-17T16:13:00.005-07:002021-09-01T20:59:41.183-07:00Complex IVR Workflow<div dir="ltr" style="text-align: left;" trbidi="on">
I recently encountered a use case, where I had to push the Skype for Business RGS Workflows to the limit. While I know there are "paid" software out there that can simplify the task. I thought I would write a script that can do the same thing (with some knowledge of P$).<br />
<br />
The script is divided into three sections.<br />
<br />
<br />
<ol style="text-align: left;">
<li>The first section of this script is where you can make changes to put the Workflow parameters and customise the script for your environment.</li>
<li>The second section is where the fun is; you will need to edit this based on the IVR questions and responses; edit this as you see fit; I have tried to include as much as possible in there.</li>
<li><b>DO NOT EDIT</b> the third section; as this retrieves the Workflow (or creates it); and updates it with the information from the first two sections.</li>
</ol>
I am looking for feedback; on this script; for now, it will do the job; but do people want to enter the information via a CSV ? JSON ? especially the IVR questions and responses section.<div>
<br /></div>
<b>Download</b><div>
v.0.1 - 2020.05.01 - <a href="https://1drv.ms/u/s!AtDr5rpLIQpzg79upyt0pN31LLoKzQ?e=Q38weU">Update-CsIvrWorkflow.ps1</a></div>
</div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-59398072232664043402017-09-12T19:37:00.000-07:002017-09-12T19:41:56.434-07:00Office 365 Mailbox Statistics<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
Ok, I have run into this so many times, I don't think I am the only one that has been having this issue. When you have a tenant with thousands of mailboxes, getting information on the mailboxes using PowerShell will almost certainly timeout in the middle.<br />
<br />
To avoid this, I have written a script that will cut the mailboxes up into blocks of 1000 (by default), you can change this via command line. It will then disconnect and re-connect again to help avoid the connection time-out.<br />
<br />
<b>Download</b><br />
v.0.1 - 2017-09-13 - <a href="https://1drv.ms/u/s!AtDr5rpLIQpzg69FVko-z2krAfzqlQ" target="_blank">Get-MailboxRecursive.v.0.1.zip</a>
</span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-80636885298952496882017-07-04T01:20:00.001-07:002017-09-12T18:18:24.662-07:00The dreaded DCOM error<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
This one took weeks from me to figure out, and a little help from our friends at Microsoft. After upgrading a customer's SBA fron 2013 to SfB (and following the correct process):
<br />
<ol style="text-align: left;">
<li>Move users to Front-End</li>
<li>Remove SBA from topology</li>
<li>Add SBA back into topology with the same name but under the SfB node</li>
<li>Re-install SBA software using 2015 image</li>
<li>Move users back to SBA</li>
</ol>
Number five is where the issue happened; the users would not move back with a DCOM error:
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-xks1bikRmLg/WVtK3qBvxTI/AAAAAAAAP7M/kS6shcdgYHY8zdsBgdhqFx5x__1C9lS-ACEwYBhgL/s1600/DCOM-Error.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="193" data-original-width="1323" height="57" src="https://3.bp.blogspot.com/-xks1bikRmLg/WVtK3qBvxTI/AAAAAAAAP7M/kS6shcdgYHY8zdsBgdhqFx5x__1C9lS-ACEwYBhgL/s400/DCOM-Error.png" width="400" /></a></div>
<br />
Interestingly enough, the error in the event log is even more confusing, talking about RoutingGroup already assigned to a different pool (EventID:32209):
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-pGxupLERqE4/WVtLCAzdIWI/AAAAAAAAP7Q/PAQ84FOBDPYFdqP8PQTxYLkeHGUhKxqggCEwYBhgL/s1600/EventError.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="463" data-original-width="895" height="206" src="https://4.bp.blogspot.com/-pGxupLERqE4/WVtLCAzdIWI/AAAAAAAAP7Q/PAQ84FOBDPYFdqP8PQTxYLkeHGUhKxqggCEwYBhgL/s400/EventError.png" width="400" /></a></div>
<br />
Since this is a weird error, the fix will have to be even more weird; this fix is from MS internal documentation :-) (DISCLAIMER: I take no responsibility for doing this on your own environment)
<br />
You will need to run the below command to find the users that have a conflicting routing group ID with the one in the Error message:
<pre class="brush: powershell;gutter: true">(Get-CsPool FE01.contoso.com).Computers | `
% {Sqlcmd.exe -E -S $_\rtclocal -d rtc -Q `
"select UserAtHost,* from dbo.RoutingGroupAssignment as rga `
inner join dbo.ServiceCluster as sc on (sc.ServiceClusterId = rga.ServiceClusterId) `
inner join dbo.ServiceAssignment as sa on (sa.ServiceTagId = sc.ServiceTagId) `
inner join dbo.Pool as p on (p.PoolId = sa.UscClusterId) `
inner join dbo.ResourceDirectory as ResD on (ResD.RoutingGroupId = rga.RoutingGroupId) `
inner join Resource as Res on (Res.ResourceId = ResD.ResourceId) `
where rga.RoutingGroupName = '<BAD ROUTING GROUP ID>'" -W -s "," -o $_-dumpuserinRG.csv}
</pre>
<br />
The output file will have several users for that routing group ID that are considered "defective"; you will need to run the next command from the RTC database on ALL FE servers in the pool:
<pre class="brush: powershell;gutter: true">use rtc
go
exec [RtcDeleteResource] 'user@domain.com'
go
</pre>
<br />
Rinse and Repeat ... for all Routing Group IDs that show up in the error message.
<br />
Now the move user works !!!
</span>
</div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-83395084515865441202017-04-04T00:23:00.000-07:002017-09-12T18:18:39.993-07:00Running Sonus SWe Lite "To-Go"<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
Finally, the Sonus SWe Lite is out, and its exciting times. This is a great VM to use in your environment, but it also means that you can have your very own SBC to test configs, and play with any time you like.<br />
<br />
If you are like me, I use Oracle VirtualBox for all my VMs on my machine. I am not going to go into the reasoning as to why I use VirtualBox, I am sure many out there can explain it better than I can.<br />
<br />
However, the SWe Lite VM only comes in 3 flavours, Hyper-V, VMWare, and KVM hypervisors. I took the VMWare package and imported it into VirtualBox, but it failed straight off the bat. After several trials, I have finally found the tweaks to make this work...<br />
<br />
First, create your own virtual machine, and do not import the OVF (or OVA) file...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-6ddzAg1-QLM/WONFzjiepPI/AAAAAAAAPvI/_8i9ND7Nvx8IvINr36MI30iG73EK78G1QCLcB/s1600/SWE001.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" src="https://1.bp.blogspot.com/-6ddzAg1-QLM/WONFzjiepPI/AAAAAAAAPvI/_8i9ND7Nvx8IvINr36MI30iG73EK78G1QCLcB/s320/SWE001.PNG" width="320" /></a></div>
<br />
<br />
After creating the VM (with no disks attached); copy the VMDK files from the OVA file to their new home...<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-QT4kfduQqqM/WONGbcBrQtI/AAAAAAAAPvQ/Q5P02vd0eSwFwY3EgJmIKiV8dWHZ0ij9gCEw/s1600/SWE002PNG.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://2.bp.blogspot.com/-QT4kfduQqqM/WONGbcBrQtI/AAAAAAAAPvQ/Q5P02vd0eSwFwY3EgJmIKiV8dWHZ0ij9gCEw/s400/SWE002PNG.PNG" width="400" /> </a></div>
<div class="" style="clear: both; text-align: left;">
<br /></div>
<div class="" style="clear: both; text-align: left;">
Next attach the disks to the VM using the Oracle VBox GUI (or the CLI if you like that sort of thing)...</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-Qe6_KOzBpvw/WONG6AoYhlI/AAAAAAAAPvU/biz_lz_DHtke86jeI3QFwKkWNEXQFLANgCEw/s1600/SWE003.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="228" src="https://3.bp.blogspot.com/-Qe6_KOzBpvw/WONG6AoYhlI/AAAAAAAAPvU/biz_lz_DHtke86jeI3QFwKkWNEXQFLANgCEw/s320/SWE003.PNG" width="320" /></a></div>
<div class="" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now for the trick that took me a few hours to figure out. You need to have 5 NICs and not 4 (the maximum you can see in the GUI). The only way to do this, is via the command line interface</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-9hUzf9Bm7SQ/WONI416E5bI/AAAAAAAAPvk/vVxQ61Yv6ekKO9Wmu9-lVduV4et4JwcvgCLcB/s1600/SWE004.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="135" src="https://1.bp.blogspot.com/-9hUzf9Bm7SQ/WONI416E5bI/AAAAAAAAPvk/vVxQ61Yv6ekKO9Wmu9-lVduV4et4JwcvgCLcB/s400/SWE004.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
N.B. If you are feeling brave, you can add it manually by editing the vbox file (Yes ... it says don't edit it .. but you can .. as long as you have VBox closed while you do it). Just in case you are, here is a screenshot of what mine looks like now...</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-5ugff20sKT4/WONJTcWnb0I/AAAAAAAAPvo/ONsUAghSFss3PXTO3sqUvDFdiPzo3hNgACLcB/s1600/SWE005.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="202" src="https://3.bp.blogspot.com/-5ugff20sKT4/WONJTcWnb0I/AAAAAAAAPvo/ONsUAghSFss3PXTO3sqUvDFdiPzo3hNgACLcB/s400/SWE005.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Once you have set this up correctly, you should now see in your GUI, the 5 interfaces...</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-jgB8UWesay0/WONJo4twVxI/AAAAAAAAPvs/KJjF-qkvujwxBk25DS4zAl4x9RGu-4Q8QCLcB/s1600/SWE006.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://3.bp.blogspot.com/-jgB8UWesay0/WONJo4twVxI/AAAAAAAAPvs/KJjF-qkvujwxBk25DS4zAl4x9RGu-4Q8QCLcB/s400/SWE006.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now you are ready to start the SWe Lite and configure the SBC. I recommend you have a read of Greig's well written <a href="https://greiginsydney.com/installing-the-sonus-swe-lite/">post</a> on the subject.</div>
</div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com2tag:blogger.com,1999:blog-3348501647748696259.post-13309816780048121492017-03-21T21:21:00.000-07:002017-09-12T18:19:01.379-07:00Upload AD Photos to Office 365<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
So, an interesting issue I came across the other day. My customer wanted to copy all photos from AD to Office 365. Since I hate doing manual labor, or leaving it to each user to re-upload their pictures, I came up with this simple script.<br />
<br />
All you have to do is enter your Office 365 admin credentials into the script, and run it from a Domain Admin account within your environment.<br />
<br />
<pre class="brush: powershell;gutter: true"># Set Credentials
$Username = "admin@tenant.onmicrosoft.com"
$Password = ConvertTo-SecureString 'MyPassword' -AsPlainText -Force
$UserCredential = New-Object System.Management.Automation.PSCredential $Username, $Password
#Connect to O365 Exchange Online
$ConnectionURI = "https://outlook.office365.com/powershell-liveid/?proxymethod=rps"
$EXSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $ConnectionURI -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $EXSession -AllowClobber
#Get Mailboxes
$Mailboxes = (Get-MailBox -ResultSize Unlimited |?{$_.IsDirSynced -eq "True"})
foreach($Mailbox in $Mailboxes){
$ADPhoto = $Null
$ADPhoto = (Get-AdUser -Identity $Mailbox.Alias -Properties thumbnailPhoto).thumbnailPhoto
If($ADPhoto.Length -ne 0){
Write-Host -ForegroundColor Green "Uploading Picture for $($Mailbox.Name)"
Set-UserPhoto -Identity $Mailbox.Alias -PictureData ([byte[]]$ADPhoto) -Confirm:$False
}
}
Remove-PSSession $EXSession
</pre>
<br />
Please let me know if you find a better way of doing this.<br />
<br />
P.S. don't worry about the errors, as I have not put any error checking into this script. </div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-47495459167454371512017-02-06T21:33:00.000-08:002017-09-12T18:19:24.351-07:00Office 365 Wizards<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
I have recently been looking at the different wizards that Microsoft provide in their Office 365 tenancy, and thought it might help some people to see them all in one place...<br />
<br />
<ul style="text-align: left;">
<li>Scenario #01: <a href="https://configure.office.com/Scenario.aspx?sid=1" target="_blank">Advanced Setup Wizard</a></li>
<li>Scenario #02: <a href="https://configure.office.com/Scenario.aspx?sid=2" target="_blank">Exchange Hybrid Configuration Wizard</a></li>
<li>Scenario #03: Currently Empty</li>
<li>Scenario #04: <a href="https://configure.office.com/Scenario.aspx?sid=4" target="_blank">Sharepoint Hybrid Configuration Wizard</a></li>
<li>Scenario #05: Currently Empty</li>
<li>Scenario #06: Currently Empty</li>
<li>Scenario #07: <a href="https://configure.office.com/Scenario.aspx?sid=7" target="_blank">Troubleshoot Outlook Connectivity</a></li>
<li>Scenario #08: <a href="https://configure.office.com/Scenario.aspx?sid=8" target="_blank">Troubleshoot Outlook Web Connectivity</a></li>
<li>Scenario #09: Currently Empty</li>
<li>Scenario #10: Currently Empty</li>
<li>Scenario #11: <a href="https://configure.office.com/Scenario.aspx?sid=11" target="_blank">Office 365 health, readiness, and connectivity checks</a></li>
<li>Scenario #12: <a href="https://configure.office.com/Scenario.aspx?sid=12" target="_blank">Troubleshoot Mail Flow</a></li>
<li>Scenario #13: <a href="https://configure.office.com/Scenario.aspx?sid=13" target="_blank">Exchange Hybrid Product Key</a></li>
<li>Scenario #14: <a href="https://configure.office.com/Scenario.aspx?sid=14" target="_blank">Troubleshoot SharePoint Online</a></li>
<li>Scenario #15: Currently Empty</li>
<li>Scenario #16: <a href="https://configure.office.com/Scenario.aspx?sid=16" target="_blank">Troubleshoot Outlook Connectivity</a></li>
<li>Scenario #17: Currently Empty</li>
<li>Scenario #18: <a href="https://configure.office.com/Scenario.aspx?sid=18" target="_blank">Troubleshoot Directory Sync</a></li>
<li>Scenario #19: Currently Empty</li>
<li>Scenario #20: Currently Empty</li>
<li>Scenario #21:<a href="https://configure.office.com/Scenario.aspx?sid=21" target="_blank">Office 365 First Run Experience</a> (< 150 users only)</li>
<li>Scenario #22: Currently Empty</li>
<li>Scenario #23: Currently Empty</li>
<li>Scenario #24: Currently Empty</li>
<li>Scenario #25: <a href="https://configure.office.com/Scenario.aspx?sid=25" target="_blank">Troubleshoot Office 365 Mailbox Migration</a></li>
<li>Scenario #26: Currently Empty</li>
<li>Scenario #27: Currently Empty</li>
<li>Scenario #28: <a href="https://configure.office.com/Scenario.aspx?sid=28" target="_blank">Send Troubleshooting Data to O365 Support</a></li>
<li>Scenario #29: Currently Empty</li>
<li>Scenario #30: Currently Empty</li>
<li>Scenario #31: Currently Empty</li>
<li>Scenario #32: <a href="https://configure.office.com/Scenario.aspx?sid=32" target="_blank">Evaluate DirSync Setup</a></li>
<li>Scenario #33: <a href="https://configure.office.com/Scenario.aspx?sid=33" target="_blank">Office 365 Hybrid Configuration Wizard Download</a></li>
<li>Scenario #34: <a href="https://configure.office.com/Scenario.aspx?sid=34" target="_blank">Troubleshooting Single-Sign-On</a></li>
<li>Scenario #35: Currently Empty</li>
<li>Scenario #36: Currently Empty</li>
<li>Scenario #37: Currently Empty</li>
<li>Scenario #38: Currently Empty</li>
<li>Scenario #39: Currently Empty</li>
<li>Scenario #40: Currently Empty</li>
<li>Scenario #41: Currently Empty</li>
<li>Scenario #42: Currently Empty</li>
<li>Scenario #43: Currently Empty</li>
<li>Scenario #44: Currently Empty</li>
<li>Scenario #45: Currently Empty</li>
<li>Scenario #46: Currently Empty</li>
<li>Scenario #47: Currently Empty</li>
<li>Scenario #48: Currently Empty</li>
<li>Scenario #49: Currently Empty</li>
<li>Scenario #50: <a href="https://configure.office.com/Scenario.aspx?sid=50" target="_blank">SharePoint Hybrid OneDrive for Business</a></li>
<li>Scenario #51: <a href="https://configure.office.com/Scenario.aspx?sid=51" target="_blank">SharePoint Hybrid Team Sites</a></li>
<li>Scenario #52: Currently Empty</li>
<li>Scenario #53: <a href="https://configure.office.com/Scenario.aspx?sid=53" target="_blank">Hybrid SharePoint Taxonomy</a> (preview)</li>
<li>Scenario #54: <a href="https://configure.office.com/Scenario.aspx?sid=54" target="_blank">SharePoint Hybrid Picker</a></li>
<li>Scenario #55: Currently Empty</li>
<li>Scenario #56: Currently Empty</li>
<li>Scenario #57: Currently Empty</li>
<li>Scenario #58: <a href="https://configure.office.com/Scenario.aspx?sid=58" target="_blank">Exchange Unified Compliance Hybrid Configuration Wizard</a></li>
<li>Scenario #59: Currently Empty</li>
<li>Scenario #60: <a href="https://configure.office.com/Scenario.aspx?sid=60" target="_blank">Microsoft SharePoint Hybrid Auditing Configuration Wizard</a> (Preview) </li>
<li>Scenario #61: Currently Empty</li>
<li>Scenario #62: <a href="https://configure.office.com/Scenario.aspx?sid=62" target="_blank">Installing Skype for business 2016</a></li>
<li>Scenario #63: Currently Empty</li>
<li>Scenario #64: Currently Empty</li>
<li>Scenario #65: <a href="https://configure.office.com/Scenario.aspx?sid=65" target="_blank">SharePoint Hybrid Extranet Sites - Business to Business (B2B) Collaboration</a></li>
<li>Scenario #66: Currently Empty</li>
<li>Scenario #67: Currently Empty</li>
<li>Scenario #68: Currently Empty</li>
<li>Scenario #69: Currently Empty</li>
<li>Scenario #70: Currently Empty</li>
<li>Scenario #71: Currently Empty</li>
<li>Scenario #72: <a href="https://configure.office.com/Scenario.aspx?sid=72" target="_blank">Installing Office 2016</a></li>
<li>Scenario #73: <a href="https://configure.office.com/Scenario.aspx?sid=73" target="_blank">Spam and malware troubleshoot</a></li>
<li>Scenario #74: Currently Empty</li>
<li>Scenario #75: Currently Empty</li>
</ul>
If anyone finds any discrepancies or new ones that I haven't added, please let me know.</div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-58385171394586710442016-08-02T23:55:00.000-07:002020-03-22T16:52:45.447-07:00Moving from On-Premises to Skype for Business Online<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
This is a gotcha which took me two days to figure out. I was moving a customer from a broken Skype for Business on-premises to O365 Skype for Business Online.<br />
<br />
Why go through the pain of hybrid, if the users never used the system in the first place. What I found is there is a lack of documentation on what are the steps to move in a big-bang scenario. So here goes....</span><br />
<br />
<span style="font-family: "verdana" , sans-serif;"></span><br />
<ol><span style="font-family: "verdana" , sans-serif;">
<li>Remove all users from your on-prem deployment</li>
<li>Make sure the users are not licensed for Skype for Business Online yet (if they are, remove it)</li>
<li>Make sure that "ALL" msRTCSIP-* attributes are null, and have propagated to all your DCs</li>
<li>Do another directory sync to O365 using your AADConnect server</li>
<li>Assign License on O365</li>
<li>Test User Connectivity</li>
</span></ol>
<span style="font-family: "verdana" , sans-serif;">
</span>
<span style="font-family: "verdana" , sans-serif;">What got me here was step "3" .. All attributes were Null except for msRTCSIP-DeploymentLocator which was set to "SRV:" ... in a normal deployment this would be good because it means automatically detect the server. In O365 world, this means the user is On-Prem and don't enable them for Skype for Busienss.</span><br />
<br />
<span style="font-family: "verdana" , sans-serif;">Powershell Command to remove it..</span><br />
<br />
<pre class="brush: powershell;gutter: true">
Get-ADUser -SearchBase "OU=Users,DC=contoso,DC=local" -Filter * |Set-ADUser -Clear "msRTCSIP-DeploymentLocator"
</pre>
</div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-62793654763335150532016-07-17T18:52:00.000-07:002017-09-12T18:21:41.267-07:00Phone Number Mismatch<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
I have been at many sites where the phone numbers on the AD contact is not the same as what is configured on Lync/SfB (Skype for Business).<br />
<br />
Since SfB is the single source of truth when it comes to which number the user will ultimately answer on; I have devised a quick script that will match those two numbers up, and make sure that all AD contacts that have a Lync/SfB account have the correct phone number associated with them.<br />
<br />
Hope this helps a few people out there...<br />
<br />
P.S. This script can be easily modified to make other changes to contacts as required.</span><br />
<br />
<b>Download</b><br />
v.0.1 - 2016-07-18 -<a href="https://1drv.ms/u/s!AtDr5rpLIQpzg6oDOL2eugzkLfI1SQ" target="_blank">Invoke-CsNumberMatch.v.0.1.zip</a>
</span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-70139094161701830342016-06-02T17:29:00.000-07:002017-09-12T18:32:44.602-07:00Sonus SBC Call Actions<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
I haven't found a place that explains the real life use case for this; so I thought I would write one for anyone that may search one day for how to do this.<br />
<br />
I usually use this as a first step in the call flow, to manipulate the call before it gets to the routing stage.<br />
<br />
As a simple example (don't want to get too complicated here). Let's say you want to mask certain caller IDs based on the "department" field in AD.<br />
<br />
First thing, you need to setup the AD integration (lots of details on Google about how to do this), and make sure you synchronise (or otherwise leave it set to online) the AD attributes:<br />
<br />
<ul style="text-align: left;">
<li>msRTCSIP-Line</li>
<li>department</li>
</ul>
Once you have got that working, you should create a manipulation table that will make the required changes to your call based on certain rules. In our case, it should check the "department" field and change the CallingNumber based on that.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-bu2aNZDE3eQ/V1DNNYT_DcI/AAAAAAAAOfU/XQRVQ-KGH_oietE5NtUTrS2B6SFJqb6rACLcB/s1600/MaskCLID.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="70" src="https://2.bp.blogspot.com/-bu2aNZDE3eQ/V1DNNYT_DcI/AAAAAAAAOfU/XQRVQ-KGH_oietE5NtUTrS2B6SFJqb6rACLcB/s400/MaskCLID.png" width="400" /></a></div>
<br />
Next an "Action" needs to be created to direct the call flow. In our example, we need to call to continue down its path regardless of the outcome.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-dK9_plD0vUk/V1DN5N9guVI/AAAAAAAAOfk/wTO6tDXBSZcLLybOeqfNN2-0ZzASHi5eQCLcB/s1600/CallAction.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://1.bp.blogspot.com/-dK9_plD0vUk/V1DN5N9guVI/AAAAAAAAOfk/wTO6tDXBSZcLLybOeqfNN2-0ZzASHi5eQCLcB/s400/CallAction.png" width="400" /></a></div>
<br />
This action will need to be used in an "Action Set" to modify the call flow. Again, in this case, we will allow the call to continue down the same path regardless. Quick gotcha here, the "Continue" option in the "Action Set" does not mean continue the call; it means continue the processing of the rules, so if you put "Continue" the call will fail...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-kwbdd9nky0o/V1DOkOrAq7I/AAAAAAAAOf0/2_pVIuHnS5YgtN-KO0BQHnpdqhTjX-FRACLcB/s1600/ActionSet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="https://4.bp.blogspot.com/-kwbdd9nky0o/V1DOkOrAq7I/AAAAAAAAOf0/2_pVIuHnS5YgtN-KO0BQHnpdqhTjX-FRACLcB/s400/ActionSet.png" width="400" /></a></div>
<br />
Finally, you need to apply this "Action Set" to a signalling group for it to take affect. In our case, we will apply it to the "To/From SfB" so that it will be intercepted before the call is made out to the PSTN...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-nySzLMrgJjU/V1DPBy6YeUI/AAAAAAAAOf8/YvhhBUbV7Fo79n6RFg380GiOsgtaOoPtwCLcB/s1600/SignallingGroup-ActionSet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="https://2.bp.blogspot.com/-nySzLMrgJjU/V1DPBy6YeUI/AAAAAAAAOf8/YvhhBUbV7Fo79n6RFg380GiOsgtaOoPtwCLcB/s320/SignallingGroup-ActionSet.png" width="320" /></a></div>
<br />
</span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-66904888405417324972016-05-24T22:29:00.004-07:002017-09-12T18:35:18.546-07:00Last Login Timestamp<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
Ok ... here is one that I have used with some of my customers to clean up their user database ...<br />
<br />
This script will go through a pool or all the pools in the deployment and check the last login timestamp for all the users that have logged in to each of the member servers (or SBAs).<br />
<br />
You can use the -Unique switch to get only the latest login or drop the switch to get all timestamps available in the deployment.<br />
<br />
You have also the option of producing the results in a Grid format, or a CSV file. Alternatively, do not specify any output format, and the result will be an array of objects that you can use to pipe into other commands.<br />
<br />
If you get an error reading from the SQL database, you might not have access to that server's RTCLocal database; or you may need to open the correct ports (check out the infamous <a href="http://www.ehloworld.com/269">Get-CsConnections.ps1</a> script by Pat Richard on how to do that).<br />
<br />
Hope this helps, and as always your feedback is highly appreciated.<br />
<br />
<b>Download</b><br />
v.0.01 - 2016-05-25 - <a href="https://1drv.ms/u/s!AtDr5rpLIQpzg6lTsskdYCDyA8sgNg" target="_blank">Get-CsUserLastLogin.v.0.01.zip</a><br />
<br />
</span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-11109918827918371602016-01-13T00:37:00.000-08:002017-09-12T18:35:49.133-07:00New Year ... New Holiday Lists<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
Since its the new year, and everyone is updating their RGS holiday lists, I thought I would contribute with a quick one-liner to help all those who want to quickly view which RGS groups have what holiday lists (you would think Microsoft would make that easier for you).<br />
<br />
<pre class="brush: powershell;gutter: true">
$Workflows = get-CsRGSWorkflow
$Holidays = @()
foreach($Workflow in $Workflows){
$List = @($Workflow.HolidaySetIDList)
$S = ""
if ($List){
$S = [string]::Join(", ",($List |%{$Holiday = $_;Get-CsRgsHolidaySet -ShowAll|?{$_.Identity -match $Holiday.InstanceId}}).Name)
}
$Workflow |Add-Member "HolidaySet" $S
$Holidays += $Workflow |Select-Object Name,LineURI,Language,TimeZone,HolidaySet
}
return $Holidays
</pre>
<br />
</span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-45188699120777292992015-09-29T17:03:00.003-07:002017-09-12T18:36:51.457-07:00Changing the primary SIP domain<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
Recently I came across a situation where it was necessary to change the primary SIP domain for a Lync 2013 customer (although this will work for any Lync or Skype for Business deployment). This is not a very difficult process but there are a few gotchas which I would like to share...<br />
<br />
<ol style="text-align: left;">
<li>Make sure that you change the SIP address for all your users after making the change to the new SIP domain</li>
<li>Make sure you run the bootstrap after you have made the change on all servers</li>
<li>Make sure you modify all your RGS workflows to use the new SIP domain</li>
<li>Finally, and the hardest one (because its not documented anywhere); you will need to manually edit the application contacts using ADSIEdit.exe to use the new SIP domain</li>
</ol>
<h3 style="text-align: left;">
Changing the Application Contacts</h3>
<div style="text-align: left;">
First open ADSIEdit and go to the configuration node, and navigate to the Application Contacts folder:</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-SfFq2dv5kHw/Vgsle9odBpI/AAAAAAAAM9w/K-ucwbZM0Mc/s1600/ADSIEdit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://4.bp.blogspot.com/-SfFq2dv5kHw/Vgsle9odBpI/AAAAAAAAM9w/K-ucwbZM0Mc/s320/ADSIEdit.png" width="175" /></a></div>
<br />
<br />
<div style="text-align: left;">
Once there, open each entry and modify the msRTCSIP-PrimaryUserAddress and Proxy address to use the new SIP domain:</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-1gxPD2w9bdA/VgsmxT8baSI/AAAAAAAAM98/XJ_pDalAOWc/s1600/UserAddress.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="114" src="https://3.bp.blogspot.com/-1gxPD2w9bdA/VgsmxT8baSI/AAAAAAAAM98/XJ_pDalAOWc/s320/UserAddress.png" width="320" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-sHHsjFF_siQ/Vgsm2gkWjrI/AAAAAAAAM-E/SvPpz0kp5Ik/s1600/proxy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://4.bp.blogspot.com/-sHHsjFF_siQ/Vgsm2gkWjrI/AAAAAAAAM-E/SvPpz0kp5Ik/s320/proxy.png" width="304" /></a></div>
<div style="text-align: left;">
<br />
Don't forget to restart the services that you have changed !!</div>
</span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-32987225975781010112015-09-06T22:04:00.002-07:002017-09-12T18:40:10.065-07:00Lync/SfB Disabled your AD Disabled Users<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
I have noticed this with many customers I have visited. Their off-boarding process usually misses disabling the user from Lync/SfB.</span><br />
<br />
The end result is that users being disabled in AD are still active and visible in Lync/SfB; this also has licensing implications, especially with today's O365 licensing and auditing. Add to that, the</span></span></span></span></span> DID number assigned to the user will still be in use and will not be freed up.<br />
<br />
I came up with this script that will quickly go through the AD/SfB environment and spit-out (or also disable) all users that are already disabled in AD.<br />
<br />
<b>Download</b><br />
v.0.01 - 2015-09-06 - <a href="https://1drv.ms/u/s!AtDr5rpLIQpzg6lae6aJxGZknukehQ">Get-CsDisabledUsers.v.0.01.zip</a><br />
v.0.02 - 2016-05-17 - <a href="https://1drv.ms/u/s!AtDr5rpLIQpzg6lYFBH5IvamTmic8A">Get-CsDisabledUsers.v.0.02.zip</a><br />
<br />
</span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-34457521807322775862015-07-21T23:22:00.000-07:002017-09-12T18:49:44.550-07:00Lync QoS Script<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
QoS has always been a hot discussion on the table when implementing Lync/SfB ... especially when you have voice traffic to deal with.<br />
<br />
There are many great blogs out there that discuss the QoS settings and ports to use, and how to set them up; my favourite is <a href="http://blog.schertz.name/2014/10/configuring-qos-for-lync-ip-phones/">this post</a> by Jeff Schertz which inspired me to write this script.<br />
<br /></span>
This is a very simple scripts which I believe picks up where the above post left off; it will read the ports from the current environment, and create the GPO policies required for both servers and clients automatically (provided it has access to the AD environment).</span><br />
<br /></span>
Please run this script with administrative privileges</span>, using a Domain Admin account.</span><br />
<br />
<b>Download</b><br />
v.0.01 - 2015-03-16 - <a href="https://onedrive.live.com/redir?resid=730A214BBAE6EBD0!54494&authkey=!AD4dhE0K5NfcocE&ithint=file%2czip">Create-QoS-Policy.v.0.01.zip</a><br />
v.0.02 - 2017-01-31 - <a href="https://1drv.ms/u/s!AtDr5rpLIQpzg6p_2xeb3EdMD-_yrA">Create-QoS-Policy.v.0.02.zip</a><br />
<br />
<br /></span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-68704484779646408022015-05-03T20:02:00.005-07:002017-09-12T19:06:44.777-07:00Lync Mirroring Status Disconnected<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
Ok, this is a very quick one that caught me by surprise.
At one of our customers; changes to the Lync settings were not taking affect. Checking the replication status, I found that replication was down for over 10 days. Running "Get-CsManagementStoreReplicationStatus" I found ...<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-hEcfDzGKZAs/VUbe5TtqxzI/AAAAAAAAJ5I/fxJrpjuOt3U/s1600/Get-CsManagementStoreReplicationStatus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;">
<img border="0" height="268" src="https://1.bp.blogspot.com/-hEcfDzGKZAs/VUbe5TtqxzI/AAAAAAAAJ5I/fxJrpjuOt3U/s1600/Get-CsManagementStoreReplicationStatus.png" width="320"></a>
</div><br />
This immediately pointed me to the SQL servers. When I checked the servers, I found the primary server was completely down. The mirror server had taken over as the principle, but apparently, Lync wasn't talking to it :( ... Checking the mirroring status "Get-CsDatabaseMirrorState" confirmed this limbo state ...<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-om_Oh2W_3iM/VUbfWrZhn5I/AAAAAAAAJ5Q/Aw1UI-aG6XA/s1600/Get-CsDatabaseMirrorState.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;">
<img border="0" height="225" src="https://3.bp.blogspot.com/-om_Oh2W_3iM/VUbfWrZhn5I/AAAAAAAAJ5Q/Aw1UI-aG6XA/s1600/Get-CsDatabaseMirrorState.png" width="320"></a></div>
Looking at the SQL Managment Studio on both servers; I found that both servers were showing the databases as "Principle"; while the failed server was showing "Principle, Disconnected / In Recovery"; the mirror server was showing "Principle, Disconnceted"
<h2 style="text-align: left;">Solution</h2>
After a bit of research and asking around; I came to this article, which helped resolve the issue. I have summarized the steps below, so that it is easier for anyone searching for this in the future...
<br />
<ol start="1" style="text-align: left;" type="1">
<li>Connect to Mirror DB server</li>
<li>Click on "New Query..."</li>
<li>type the command "alter endpoint mirroring_endpoint state=stopped"</li>
<li>Press the button "Execute"</li>
<li>Wait until the command completes, at this point you have disabled the replication between the servers.</li>
<li>Execute the command "alter endpoint mirroring_endpoint state=started"</li>
<li>This will re-start the mirroring process, and this time, the database server will see the primary server as up, and will start replicating back to it the information that it lost.</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-947m1zuDNLE/VUbfs8QjZMI/AAAAAAAAJ5Y/9zbOIzS8gXA/s1600/DBState.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;">
<img border="0" height="320" src="https://1.bp.blogspot.com/-947m1zuDNLE/VUbfs8QjZMI/AAAAAAAAJ5Y/9zbOIzS8gXA/s1600/DBState.png" width="196"></a><br />
At this point you have two options, of either leaving the second SQL server as the principle, and the original one as the Mirror, or you can failover the Databses back to the original state. In both cases, Lync doesn't mind, and doesn't care.
</span></div>Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-67934117293430421222015-04-27T16:45:00.000-07:002017-09-12T19:14:10.918-07:00Sonus SBC AD Lookup Gotchas<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
I have recently been troubleshooting issues with a Sonus SBC 1000 doing call routing using AD lookups.<br />
<br />
There are many blogs out there about how to do this, including the guide from Sonus themselves which is pretty descent.<br />
<br />
Let me however, go into some of the gotchas that caught me by surprise, and are not well documented on the Sonus site...<br />
<br />
<h2 style="text-align: left;">AD Cache Lookup</h2>
There is a very clear note saying that it is "recommended" to have a USB stick attached to the SBC if you are going to use the AD Lookup in cached mode.<br />
<br />
What there is no mention of, is the way the Sonus SBC uses the cache, and how it gets updated. This information was provided to me from Sonus TAC/Engineering, and is current as of the date of publishing this blog post; this applies to having the AD Configuration in "Updates" mode...<br />
<br />
<ol style="text-align: left;">
<li>All domain controllers configured are treated equally; i.e. if any one of them responds back with a successful query, than the cache is valid, even if all the other queries fail.</li>
<li>The cache is dropped before the new cache is read; thus if the AD query fails, the system is left with "NO CACHE" unless you have a USB stick with a backup cache to be used.</li>
<li>if "ALL" domain controllers fail to respond, the SBC switches to online mode, and tries to query the domain controllers in order for the user in question.</li>
<li>The system will not try any failed domain controllers again until the next update cycle as configured in the "Cache Settings"</li>
</ol>
they have said that they are working on improving the process...<br />
<br />
<h2 style="text-align: left;">Case Sensitive Lookup</h2>
Apparently the lookup is case-sensitive; while simply testing for "=msRTCSIP-Line=" in your transformation table may work most of the time, if a Lync administrator decides to type "Tel:+xxxxx" instead of "tel:+xxxx" the query will fail to return a positive match.<br />
<br />
To overcome this issue the recommendation is to use "(?i)=msRTCSIP-Line=" which would make the lookup case-insensitive.<br />
<br />
Of course you can use the same "(?i)" in other locations too for matching without case.<br />
<br />
<h2 style="text-align: left;"> Lookup Limits</h2>
Transformation table lookups on the SBC have a hard limit of 256 characters for the string being manipulated. This is a hard limit and as per the Engineering team, the registers were never meant to hold large strings of data (such as memberof fields.<br />
<br />
This is a major draw-back if you do routing based on group memberships or on other fields which may exceed this hard limit.
</span></div>Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0tag:blogger.com,1999:blog-3348501647748696259.post-70069600442359649132014-08-17T22:19:00.000-07:002017-09-12T19:15:31.614-07:00Lync Edge Certificates<div dir="ltr" style="text-align: left;" trbidi="on">
Are you getting problems starting your Edge service role ?</div>
<br />
Is your Edge service going crazy about the certificate being not accessible ?<br />
Do you get this dreaded error message from EventID: 14591
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-UbyXJwLocCA/U-LPbAVW4CI/AAAAAAAAG4k/XEufR5up93M/s1600/blog-001.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://3.bp.blogspot.com/-UbyXJwLocCA/U-LPbAVW4CI/AAAAAAAAG4k/XEufR5up93M/s1600/blog-001.png" height="234" width="320"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Event ID: 14591</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><span style="color: red;">Error 0xC3FC7D95 (LC_E_VALIDATION_CERT_NO_KEYEXCHANGE)</span></span></span></div>
<div style="text-align: left;">
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><span style="color: red;">Cause: The certificate may have been deleted or may be invalid, or permissions are not set correctly.</span></span></span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Fear not, you are not alone, after banging my head against the wall for a few days, rebuilding the Edge server from scratch, and trying out a bunch of different certificate templates; I have finally found the solution...</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Although Microsoft Windows is happy with many types of Crypto Providers; alas, Lync on the other hand, only likes the "Microsoft RSA SChannel Cryptographic Provider"</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Next time you want to issue a certificate, make sure you choose the "Microsoft RSA SChannel Cryptographic Provider"</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
To make this more informative, I have added below the certificate template options that should be used for generating Lync certificates...</div>
<div style="text-align: left;">
<br /></div>
<ul style="text-align: left;"></ul>
<ul style="text-align: left;">
<li>Don't select to publish to AD, as Lync Edge can not access the AD and is not
authorized to do so: </li>
</ul>
<ul style="text-align: left;"></ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-ImgO8aWpWQg/U-LLWdvlJOI/AAAAAAAAG3s/kBM3Vmd4s74/s1600/blog-002.png" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://1.bp.blogspot.com/-ImgO8aWpWQg/U-LLWdvlJOI/AAAAAAAAG3s/kBM3Vmd4s74/s1600/blog-002.png" height="108" width="320"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Template - General Tab</td></tr>
</tbody></table>
<ul style="text-align: left;">
<li>Choose the Purpose to be "Signature & Encryption" and allow "Private Key to be Exported"</li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-FlvUzP7zgyk/U-LNMvmDYtI/AAAAAAAAG4A/9hrPtH-A0T4/s1600/blog-004.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://3.bp.blogspot.com/-FlvUzP7zgyk/U-LNMvmDYtI/AAAAAAAAG4A/9hrPtH-A0T4/s1600/blog-004.png" height="182" width="320"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Template - Request Handling Tab</td></tr>
</tbody></table>
<ul style="text-align: left;">
<li>Choose only the "Microsoft RSA SChannel Cryptographic Provider"</li>
</ul>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-uM04aKkOO5I/U-LMaOUvV0I/AAAAAAAAG34/ts7okg3ejrA/s1600/blog-003.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://2.bp.blogspot.com/-uM04aKkOO5I/U-LMaOUvV0I/AAAAAAAAG34/ts7okg3ejrA/s1600/blog-003.png" height="198" width="320"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Template - CSP Selection</td></tr>
</tbody></table>
<ul style="text-align: left;">
<li>Choose the Application Policies to be "Server Authentication" </li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-OgqS3e9SjKA/U-LN9pJNW9I/AAAAAAAAG4I/yv1V15ir5aU/s1600/blog-005.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://2.bp.blogspot.com/-OgqS3e9SjKA/U-LN9pJNW9I/AAAAAAAAG4I/yv1V15ir5aU/s1600/blog-005.png"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Template - Extensions Tab</td></tr>
</tbody></table>
<ul style="text-align: left;">
<li>Choose the Key Usage to be "Allow key exchange only with key encryption" </li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-OZ0FE3W2i-Y/U-LOXi15NnI/AAAAAAAAG4Q/hnbvRBTxQgU/s1600/blog-006.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://4.bp.blogspot.com/-OZ0FE3W2i-Y/U-LOXi15NnI/AAAAAAAAG4Q/hnbvRBTxQgU/s1600/blog-006.png" height="213" width="320"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Template - Extensions Tab</td></tr>
</tbody></table>
</div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com1tag:blogger.com,1999:blog-3348501647748696259.post-45917382447773035992014-07-29T07:34:00.000-07:002017-09-12T19:37:27.888-07:00Get-CSUserForwards<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">
I was asked recently to come up with the best way to figure out which users were forwarding their land-line to another number (e.g. mobile)
or to another user.<br />
<br />
I came up with the idea of using SEFAUtil to figure out all the currently enabled users' setting.<br />
<br />
<pre class="brush: powershell;"># Initialize Variables
$AllUsers = @()
$Count = 0
# Define Location of SEFAUtil
$SEFAUtil = "C:\Program Files\Microsoft Lync Server 2013\ResKit\SEFAUtil.exe"
# Get Application Pool Server to use
$LyncServer = Get-CsTrustedApplication | ?{$_.ApplicationId -eq "urn:application:sefautil"}|%{$_.TrustedApplicationPoolFqdn}
# Get Lync EV Enabled Users
$LyncUsers = Get-CsUser | where {$_.EnterpriseVoiceEnabled -eq $true}
$TotalUsers = $LyncUsers.Count
# Loop for each one and get details
Foreach ($LyncUser in $LyncUsers){
$Destination = $Null
#Convert User SIP to lowercase
$UserSIP = $LyncUser.SipAddress.ToLower().Replace("sip:","")
#Write Progress
$Count += 1
Write-Progress -Activity "Processing Users" -status "User $UserSIP" `
-percentComplete ($Count / $TotalUsers*100)
#Do the magic
&$SEFAUtil /Server:$LyncServer $UserSIP| Tee-Object -Variable output|Out-Null
#Split the output to lines & convert to an object
$parts = $output -split "`n"
#Figure Out Destination
$Destination = ($parts[4] -split "to: ")[1]
If ($Destination -eq "") {
} ElseIf ($Destination -Match "user=phone") {
# Destination is a number
$Destination = $Destination.Split("@")[0].Split(":")[1]
} Else {
# Destination is a SIP address
write-output $Destination
#$Destination = $Destination.Split(":")[1]
}
#Display information
$Data = New-Object -Type PSObject -Property @{
SIP = ($parts[0] -split ": ")[1]
Name = ($parts[1] -split ": ")[1]
EVEnabled = ($parts[2] -split ": ")[1]
SimRing = ($parts[3] -split ": ")[1]
ForwardTo = $Destination
}
$AllUsers += $Data
}
</pre>
<br />
Your feedback is always welcome.<br />
<br />
</span></div>
Hany Elkadyhttp://www.blogger.com/profile/05015389457171678553noreply@blogger.com0