Powershell, Let’s Encrypt and Lansweeper

Looking at moving away from purchased certificate towards free Let’s Encrypt generated certificates, Lansweeper posed a bit of an issue. Following Lansweeper’s SSL instructions to automate the process, a certificate would need to be generated, installed and then it’s thumbprint added to a config file. The below Powershell script uses Posh-ACME with Cloudflare DNS verification to generate the certificate and then regex replaces the certificate’s thumbprint in the Lansweeper config file.

AD OU – Remove Protected From Accidental Deletion

When creating an OU in AD, ticking the Protect from Accidental Deletion box seems like a good idea. Until you go to delete the OU. Even more so if you have multiple nested OUs and just want to delete the top level one. Powershell to the rescue! We can use Get-ADOrganizationalUnit (note US spelling) to select all the OUs within a supplied OU and then use Set-ADObject and ProtectedFromAccidentalDeletion Get-ADOrganizationalUnit -SearchBase “OU=NameOfOU,DC=ogs,DC=internal” -Filter * | ForEach-Object { Read more…

AccessIt – Unattended Install

We use AccessIt for library management in several of our schools. Aside from running on JAVA it’s an excellent piece of software.In the past, we’ve always had to deploy it by having physical (or virtual) access to the machine. However, now have a process for unattended install.We use PDQ Deploy – if you don’t use it, have a look. It’s worth every penny Step 1. – Install JAVAThe installer will crash out if JAVA isn’t already Read more…

GAM – Hide all users in AD OU from Global Address List

Fairly niche one this one. Needed to hide all the users in a specific group from the GSuite Domain’s Global Address List Powershell to the rescue. Pulling through all the users in a specific searchbase and iterating through them with the GAM gal off command. Get-ADUser -Filter * -SearchBase “OU=Name,DC=domain,DC=local” -Properties mail | ForEach-Object { .\gam.exe update user $_.mail gal off } The script pulls the accounts in the specified OU, including their mail attribute, in Read more…

api-ms-win-crt-runtime-l1-1-0.dll

This has been a minor annoyance for a while now; how some machines work with a certain piece of software (Skype, Cura, Wacom Tablet Drivers to name some of the examples we’ve had) and some don’t. They all give an error of The Program can’t start because api-ms-win-crt-runtime-l1-1-0.dll is missing on machines running Windows 7. Some Google-Fu narrowed this down to VC++ components missing. Turns out you can install VC++ Redistributables to your heart’s content but if a Read more…

Concerto Date and Time Format

Changing the time and date format in the Concerto signage system. By default, the date displayed on the signage screen is in American format; Month / Day / Year As one of the 2.8billion people in the world who use the DMY format, I needed to find a way of changing the date format on the screens. Concerto have some document ( https://github.com/concerto/concerto/wiki/Field-Configuration ) but for some reason the option was unavailable. Started by going to Read more…

WDS, Windows 7 and USB3

For a while now we’ve been building machines using WDS, a master image and filtered drivers. Each machine model has a WDS Driver Group which is filtered by Model and Applicability set to Driver packages matching client hardware. For a long time, using this approach, USB3 drivers haven’t been installing at all. We tend to find that the USB3 Port driver is installed but not the USB3 hub. Finally, after a lot of reading up on this Read more…

Slack LAPS Slash Command

Having implemented LAPS (Local Administrator Password Solution) on all of our PCs there became a need to access the password when in the field away from a PC with easy access to AD / the LAPS GUI. As we use Slack for primary out-of-office communications, it made sense to create a Slack Slash Command to return the LAPS Password. It is accessed by using /password PCNAME  and returns the password to the user who requested it. Read more…

GAM – Set profile photo of entire group to single image

For out students, we want a single image for their GSuite profile photos. Sadly there isn’t a way of preventing users from changing their photo, so we have to run a script regularly to remove any changes they may have made. #- Address of the group -# $groupAddress = “[email protected]” #- Location of image -# $imageLocation = “C:\Folder\image.jpg” #- Set the image -# .\gam.exe group $groupAddress update photo $imageLocation  

GAM – Give mail group calendar permissions

Had a need to add all the users from a GSuite group as editors on a Google Calendar. The script reads and outputs the current ACLs, gets the members of the group and then adds them to the calendar giving them the appropriate permissions. At the end, it outputs the new permissions. Different permissions can be given freebusy|read|editor|owner by changing the permission on line #23 #- Address of google calendar to add permissions to -# $calendarAddress = Read more…