Posts

Showing posts with the label microsoft

SharePoint drop box using Power Automate

Image
Introduction I was asked how we can create a SharePoint library which allows somebody to upload files to it, but not read any other files in the library. It felt like a simple and pretty reasonable request.  My colleague Grant made me aware of the Enable File Requests feature in SharePoint or OneDrive which might achieve this requirement, but unfortunately as it is designed for more external usage, the pre-reqs require things like Anyone links to be enabled. I looked into other out of the box options. Permissions on SharePoint Lists and SharePoint Document Libraries are similar, but not exactly the same.  I say permissions, I guess it is more advanced settings for Lists have Item-Level Permissions which give the ability for the user to only read items that were created by them. Lists Item-Level Permissions Nothing exists like this in SharePoint document libraries unless you break permission propagation on every file which isn't scalable from a management or performance perspe...

Citrix Future of Work Tour 2019 (London)

Image
I visited etc. Venues in Bishopsgate for Citrix Future of Work Tour 2019 on September 11 2019.  There were three main takeaways Consumer like experiences Analytics Networking Packed house! Consumer like experiences During the keynote, they mentioned how consumer applications like Facebook are very easy to use, data is surfaced to you in the simple way and interactions are straightforward.  Employee tools however, are usually quite cumbersome and difficult to use.  Enter Citrix Intelligent Workspace This product was realised out of the acquisition of Sapho late last year This provides the employee with a feed built up from connections to various SaaS applications.  This feed also allows some basic interactions e.g. booking leave in WorkDay or approving expenses in SAP.  It is built on their cloud offering and includes AI and ML to increase productivity e.g. if you as a manager always approve expenses under £50, it would start to...

Dynamics 365 USD Performance Testing (Part 2)

Image
This blog is a little video which shows the workload in a demo environment.   Below is a sample script from GitHub which you customise to your own needs. To see part 1, click here To see part 3, click here

Dynamics 365 USD Performance Testing (Part 1)

Image
As discussed in my introduction, this set of blog posts is to show what can be done to performance test Unified Service Desk and Dynamics 365 CE. These tests are more designed to identified the client side impact of using USD.  It can be a very CPU intensive program and depending on your configuration on CE, some of the pages can take a while to load and/or use up a lot of client side resource. Below is a screenshot of the hardware requirements for USD Microsoft provide some hardware recommendations, but when running this in a Server Based Computing environment such as Citrix XenApp, it is unlikely you are going to give every user 2 dedicated CPUs without some pooling. The other thing to bear in mind is that USD uses embedded iexplore.exe processes for its frames.  We all know that IE sucks, but specifically with JavaScript and DOM Storage performance, which Dynamics uses a lot of. Microsoft know this and if they could burn IE to the ground I am sure they ...

Dynamics 365 USD Performance Testing (Introduction)

Recently I had to perform some performance testing for a Citrix XenApp environment as part of an upcoming upgrade to our Dynamics 365 Customer Engagement application.  We wanted to ensure that this CE upgrade didn't affect the user density on our Citrix servers. This workload is for our Customer Service Advisors who use Aspect Unified Agent Desktop (UAD) to receive calls integrated into Microsoft Unified Service Desk (USD) to present caller information and a method of completing workflows through Dynamics 365 CE. We would usually complete this task with LoginVSI.  It is a tool we have available to us and have used in the past.  We even have a basic custom workload for the above scenario. We were having a problem with a licence lapsing with the product and also, I wanted a bit more control over the workload and some of it's outputs. So the next best option was creating a set of PowerShell Scripts to complete these tasks. At a high level, I had a single launcher V...

View who has logged into Dynamics 365 - across many environments

Image
A licencing requirement was raised at work this week where we needed to know who out of our Dynamics 365 CRM users were actually using the application.  These licences are really expensive and having many of them unused would cost the company lots of money over the year. We did think of looking at audit tables in CRM, but unfortunately this wasn't an option due to the fact we have many Dynamics 365 environments.  A single licence will allow you access (if you have permission) to access as many sandbox environments as you wish.  This would mean collating data from many environments into one dataset. We needed something more overarching. So I reviewed Azure AD to see if I could view signins for a particular application and low and behold I could see all logins to Dynamics CRM Online.  All we would is visit this page, add the filters and download a CSV file.  The resultant CSV file would then need filtering to remove duplicate users, because we don't care abo...

Creating a Complex Custom Azure Role

Image
We recently had the need to create a custom role in the Azure Portal which stopped a set of administrators from creating networks or virtual machines. This was because we are planning to share our ExpressRoute connection with their subscription and we only allow IT to add new devices to our network or domain. Now the standard Azure RBAC roles don't do anything like this.  These roles are typically configured with only a small set of permissions. The role needed the following setup Allow All Allow start, stop, deallocate VM Deny All Compute Deny All Network Deny All Permissions The following article was pretty useful in describing the process of creating the custom role.  There are a few methods, but I opted for the creation of the JSON file. To get the actual permissions required to build the JSON file itself, we needed to run the following commands Get-AzureRMProviderOperation Microsoft.Compute/* Get-AzureRMProviderOperation Microsoft.Ne...