Thursday, 27 March 2025

SharePoint site creation tool

Introducing Verasti

If you are ever in the position of having to create and recreate customised SharePoint sites with specific folder structures for different uses then I have designed and developed a tool to do this.

I call it Verasti and you can purchase licences from Verelogic IT Solutions 

Verasti lets you create customised SharePoint sites.  All the customisation data stored in an Excel workbook (no database needed).

The Verasti engine looks at the Excel workbook and uses the metadata to create or configure a SharePonit site.

The workbook as a series of worksheets that control the creation process.
Assuming you have the correct permissions on the SharePoint tenant, you can deploy the same configuration as many times as you wish just by modifiying some metadata in the workbook.

Verasti features

Verasti can do the following.
  • Create SharePoint sites (Modern and Classic)
  • Deploy "Apps" from the central "SharePoint" catalogue
  • Activate a SharePoint Theme
  • Enable and disable SharePoint Features
  • Create new SharePoint Roles (Permission Levels) for the site
  • Create custom SharePoint Groups
  • Add members to the SharePoint groups (SharePoint users, Azure groups)
  • Create Lists and Libraries with full customisation (e.g. version count, compliance tags)
  • Add Fields to Lists (text, number, datetime, lookup etc)
  • Add Folder hierarchies to Libraries (or lists)
  • Create Views on Lists and Libraries
  • Upload files into Libraries (whilst maintaining original meta data such as date created and date modified)
  • Create List items 
  • Deploy Site Content Types into Lists and Libraries
  • Create Site Pages
  • Create Section layouts on Site pages
  • Add Web Parts to Section Layours with customised properties of the Web Parts
  • Create Sharepoint "Shares"
  • Break Inheritance at Library/List Level
  • Assign Permissions at Library/List/Item/Page/File level
  • Create QuickLaunch and Top Navigation entries
  • Modify Branding of the site (The "chrome")
  • Generate Reports on Lists/pages/Libraries
I have designed the tool to deal with time consuming SharePoint configuration.  No need to write or support your own PowerShell any more!

It can save many many hours of tedious repetition and can be integrated in with other systems.


 Dynamics FnO Entities 

Dynamics API documentation is pretty scare and if you are doing work using the Dynamcis REST API you need to know the entities and propeties.

It is quite tricky to get documentation about the entities and properies so I needed to gather information myself.

Getting "Metadata"

There is one URL that will give you an XML represntation of everything. It is:

https://{your_dynamics_host}/data/$metadata

This gives you an enormous response (so big that it may not even be possible for a browser to handle the response).  Best to use a tool like "Postman" to get that XML

Strangely there does not seem to be a need to get an authorisation token to get this response. 

When I tried this out I got an XML response of over 615 thousand lines

Extracting Entity/Property/Primary Keys

Inside the XML is a treasure trove of information.

  1. Entity names
  2. Entity primary keys
  3. Entity Properties and their data types
  4. Entity Navigation Properties (i.e. properties that link to other entities)

I used my tool "Vermonti" to process this XML file as follows:

  1. Turn the XML into JSON (resulted in a file of over 1.6 million rows) and store it
  2. Use Vermonti to parse the JSON and extract properties to a CSV file
  3. Use Vermonti to parse the JSON and extract navigation properties and APPEND to the CSV file
  4. Convert the CSV file into an XLSX workbook and sort by Entity Name.  This gives me a list of all the fields for all entities (nearly 75 thousand properties) 
  5. Use Vermonti to parse the JSON and extract primary keys into a XLSX workbook.  There are nearly 11 thousand properties used as primary keys - most of which are compund primary keys.
If you want a copy of the workbooks Vermonti generated then emaill me...




Monday, 4 April 2022

PeMon my little grey friend

 14 August 2007(?) – Sun 27 March 2022  (Age 14 years 6 months)

Memories of my little grey friend by Marcus Khoo 28 March 2022


2007 - so pivotal for the Khoo’s

When a little grey kitten chased pen tops into shoes

Throw the top and away you were gone!

Trotting back with bright eyes that shone

Swiping yellow toy or a simple blue string

You knew not what pleasure you would bring

No matter the years you had behind

You’re forever a kitten in my mind

 

“Where’s the kit?” is what Jan would say

Now - check the places to see where you lay

Sometimes come running with tail up high

Or with throaty miaow – for food you would cry

“Hi Babes” would I say to a grey ball on bed

        A silent miaow from your little raised head

In “do not disturb” mode – when your sleep was so light

        Your response was a gentle claw or a bite

 

Now when about two - what a tragic event

        Hit by a car round in Berkeley Crescent

Then that long “op” was to repair your rear hock

        Your stressful saliva that seemed not to stop

Cat sitting volunteers - well they’ve been a-plenty

        (To always ensure our home was not empty)

To them was presented a kill you had hunted

        with feathers and corpses, they were confronted

 

Hunting skills were so many and  sight to behold

        That first RAT(!) - on our kitchen tiles cold

And all of those mice! – caught to show off your skill

        With signature Miaow that announced the kill

Now when at Petter Close, in garden facing South

        You sprung and in “mid-air” caught blackbird in mouth

I’ll never forget that you once caught a bat

        T'was constantly amazed with your skills as a cat

 

I remember so well into bedroom you bought

        An intact and living magpie you caught

What panic in me - but none did you show

        I thankfully coaxed it out of window

And to see you walking on top of a fence

        was clearly to show off amazing balance

Now when Martin came over with ankle steel plate

        The loss of one canine was sadly your fate

 

Being led outside - in my mind this is etched

        Demanding long strokes on your body outstretched

And being led to the bathroom - you did this a lot

        For nuzzling session and your “silly” flop

To open a door? – your battle oft won

        No sound, just sit, look up, till done

But trips to the vet – a decision hard pressed

        A heart wrenching cry would make us so stressed

 

Some demands you would tell us by scratching at doors

        They had to be opened – said the sound of your claws

And when to bed late - at midnight about

        A stroke of your back and purrs would sound out

At night, sometimes atop bed you would park

And commence a wash cycle - even when dark

Scratching to gain access to our bedroom eaves

Or demanding Miaow's - whatever you pleased

 

Antics during my bathing - with bathroom door closed

        You’d be on the bath side and paw at my toes

And I remember sometimes on my blue towel you’d sit

        And just stay there as company with me for a bit

Sometimes you would bound up to the sink

        And demand the tap to be opened to drink

Never mind me, for if shut was the door

        You’d sit looking up and then scratch with your paw

 

When attempting to satisfy your culinary taste

        So much food was shunned and sent to waste

Oh! what a fussy eater you became

        “Finest choice morsels” was the name of that game

Now what did you love most on your white dish?

Ah, your favourite - raw tuna fish!

But for you my little kit, no cost would be spared

        'Cause it celebrated all our experiences shared

 

Since once you filled our lives with gladness,

Now there is only distress and sadness

Our last weeks together so incredibly hard

Your fading away like being pierced by a shard

No more wash cycles for you and no appetite

No more darting around – just a loss of fight

So we knew when it was the loving thing to do

To say goodbye and for me was too soon

 

I now find it difficult - so hard to stand tall

        Never again to see you my little furball

A hole I have here right in my being

        because your trotting – not again will I be seeing

I will always remember the kitten cat you were

Not that shadow of yourself with the matted fur

And now I must get used to us being unreachably apart

But please rest assured you will forever be in my heart

 

 



Wednesday, 17 June 2020

How to remove the title bar from a SharePoint online Site Page

When you create a new SharePoint Team site (either directly or indirectly via a Teams team) you always get a "home" page that does not contain a title graphic.

Strangely if you create your OWN site pages then you ALWAYS get the title graphic and can't remove it from the GUI.

If you ever delete that default page then you can't ever recreate that page from the GUI.

Fortunately there is a way to switch the title bar "off" via PowerShell.   The secret is to change the "layout type" to "Home".

These are the steps inside an ADMIN PowerShell:

Firstly install SharePoint PNP with

[PS] Install-Module SharePointPnPPowerShellOnline -SkipPublisherCheck -AllowClobber

If installed already you may wish to update your version with:
[PS] Update-Module SharePointPnPPowerShell*

With that done, enter your admin credentials with
[PS] $creds = Get-Credential

Then set the name of the page you want to change:
[PS] $PageName = "Home"

Then set the URL of the site that has the page you wish to change (use your tenant)
[PS] $LoginUrl = "https://{tenant}.sharepoint.com/sites/Test"

Now connect to the site
[PS] Connect-PnPOnline -Url $LoginUrl -Credentials $creds

or with MFA you may need
[PS] Connect-PnPOnline -Url $LoginUrl -UseWebLogin

Now to do the switch:
[PS] Set-PnPClientSidePage -Identity $PageName -LayoutType Home


Tuesday, 21 April 2020

Getting a 4K external screen working with a Surface Book 2

I note that there are many posts around the Internet about this topic - how to get a Surface Book 2 driving a single external 4K screen.
Many authors state that the screen is always reported as a HD scren 1920x1080.
This is what I found:
The lowering of the resolution can be simply related to the use of HDMI to drive the screen.
Now I am not saying it is not possible with HDMI but an immediate solution is simply to ditch HDMI and use the DISPLAY PORT connections from Surface Book 2 to screen.
Hold on you say, there isn't a mini display port socket on a Surface Book 2.
Yep true - you will need a Surface Dock and then you will be given two.
Just connect from the mini display port on the Dock to the Display port input on the screen, tell your screen to accept input from the Display Port and Voila!
Hope this helps someone.

Tuesday, 5 February 2019

Changing your Multi Factor Authentication (MFA) options in Microsoft 365 without asking IT

When your IT department switch on multi factor authentication (MFA) for your company Microsoft cloud system you only have one chance to set it up - when you are first challenged.

Trouble is that you may want to change your MFA settings (i.e. how you get the second challenge).  For example, from an SMS message to your phone  to "Microsoft Authenticator" approval on your phone.

So, just go to :

https://aka.ms/MFASetup

and follow the prompts!


Thursday, 31 January 2019

Checking MD5 SHA1 and SHA256 hash codes with Windows 10

It is a good practice to check the integrity of a downloaded file to make sure you actually get exactly what you are meant to get.

This can be done if the owner provides a hash code.  The hash code could be MD5, SHA1 SHA256 and I am sure there are or will be others but I will just comment on these three.

When using Windows 10, you don't need any special utilities to do a check.
Just open a command prompt
Type "command" in Windows Search next to the Windows button
Select "Command Prompt"

With the command prompt now open, go to your downloads folder
For example:

cd \users\(your_username)\downloads

Now, for an MD5 hash:

checkutil -hasfhile (yourfile) MD5

For an SHA1 hash:

checkutil -hasfhile (yourfile) SHA1

For an SHA256 hash:

checkutil -hashfile (yourfile) SHA256

The checkutil utility will display the hash of the file which you will need to compare with that supplied by the original owner of the file.

Example:
C:\users\marcus\Downloads> certutil -hasfile gpg4win-3.1.5.exe MD5

returns
MD5 hash of gpg4win-3.1.5.exe:
732614c35a846890718230cd73f96722
CertUtil: -hashfile command completed successfully.