Overview of Microsoft LAPS (Local Administrator Password Solution)

The “Local Administrator Password Solution” (LAPS) provides management of local account passwords of domain joined computers. Passwords are stored in Active Directory (AD) and protected by ACL, so only eligible users can read it or request its reset.” – Microsoft. Basically, it reduces the risk of having a default (backdoor perhaps) local administrator & default password on your machines by having each machine use a different complex password for the account. Before LAPS, most organizations had a generic local admin ex: ORG_LocalAdmin, with the same password on each machine ex: ORG_P@ssword. Problem with that is, if a machine was compromised, the malware / hacker could move laterally among all your machines gathering more and more data to deepen the security breach. With LAPS implemented, you remove that attach vector, if one machine is compromised, the ability to move laterally to another machine is greatly reduced.

There are quite a few guides out there, and the Microsoft Docs are pretty good too. I didn’t do extensive searching before creating this post, so note that this may be redundant.

In this Walk-Through, I’ll cover

  • Downloading LAPS
  • Create Source Folders
  • Create End Point Installer Application
  • Deploy LAPS Application to End Points
  • Extend AD Schema (From Domain Controller)
  • Setup LAPS AD Groups and Permissions
  • Manually Install LAPS Admin Client
  • Verify Permissions and Read / Reset Access
  • Basic Enable of Group Policy
  • Tests to confirm Permissions are working

Things I’m not covering

  • The Why’s behind each step. Much of the details and reasons why you have to perform these steps are already documented well in the Microsoft “LAPS_OperationGuide” which is part of the download, and quite honestly, that’s what I’m using as I create this Walk Through, so I suggest you look over that before you even start.
  • Every Deployment Scenario. This is a generic and SIMPLE Lab, while much of this is the same for any environment, each environment is different, each organization is setup differently. LAPS setup will probably require multiple teams involvement (AD / CM / Deployments / GPO)

Things to Consider beforehand

  • Active Directory Structure (OUs with Workstations)
  • Who will have Rights to READ the LAPS Password
  • Who will have Rights to RESET the LAPS Password

Client Deployment:

Download LAPS Client & Docs from Microsoft: https://www.microsoft.com/en-us/download/details.aspx?id=46899

I’ve downloaded all of the Files into a “LAPS” directory then created a new folder to move the MSI Files into.

In the CM Console, Create a new Application. Point it to the x64 version of the MSI

Once you choose the MSI can Next, it will pull the information for the Application from the MSI

As you click Next, you’ll come to General Information, I added “Microsoft” as publisher, and changed /q to /qn

At this point, just click Next, leaving the defaults until it completes and you click Close. You’ll now have the Local Administrator Password Solution application in your console. We just need to make a couple tweaks. In the Properties of the application, click on Deployment Types Tab, choose the Deployment and click Edit, go into Requirements an add the x64 for versions of Windows in your Environment.

At this point, we have the App, lets get it deployed to the workstations. Since you’ve added the logic into the app, you can safely deploy it to your all workstations. NOTE, this is when knowing your environment, you deploy to the appropriate collection. Perhaps you have a business reason to not deploy it to all workstations. Just use best practices for deployments (Maintenance windows, etc). Rest of this example is just generic.

I left Scheduling set to defaults, User Experience , Alerts all defaults

Infrastructure Setup:

Admin Client / LAPS Management Client

So now that the Client is being deployed, lets get the infrastructure setup. First we’ll switch over to a client test machines / or your typical admin workstation. Lets get the LAPS Client Installed along with the Management Tools. Once you kick off the installer (Double click the MSI), click through the first couple screens to get to the “Custom Setup”, once here Enable all options.

Go ahead and let it install. We’ll need to grab some of the items it installed and we’ll copy them back out to our source server for easy access.

Go to C:\Windows\PolicyDefinitions, here you will grab the AdmPwd.admx file, and the AdmPwd.adml file from the en-US subfolder. I created a folder called GPO_ADMX in my source location to copy them to.

Also, Copy the AdmPwd.PS folder from the PowerShell Modules: C:\Windows\System32\WindowsPowerShell\v1.0\Modules

You’ll need those later.

Now, these steps you can do from your workstation (and should), but to make sure I had connection and rights, I did it from my actual Domain Controller. You’d typically do this from an admin machine with proper credentials, as your DC’s should be CORE and not even have a desktop experience. You typically never want to actually log onto a DC. But this is lab, and I’m just making a demo.

Modify the AD Schema

On the Domain Controller, copy the AdmPwd.PS folder you uploaded to your source into the local module repository on your DC, then launch Admin PowerShell Console. In this image, you can see I tried to Import-Module before I had copied the files onto the DC, after the copy, the command runs correctly:

Run the command: Update-AdmPwdADSchema:

In my lab, you can see it successfully added 2 attributes and modified one class.

Hopefully you considered a few things before starting this Journey, like which OU the workstations are in that you want to apply this to, and who do you want to have permissions? For my lab, it’s pretty easy, I have 1 Master OU setup for WorkStations, and all other workstations fall into Sub OUs of that Master OU.

At this point, it’s nice to check and see who has rights to view that info in AD. In your PowerShell console, type “Find-AdmPwdExtendedrights -identity <OU Name> | Format-Table

As you can see, rights are pretty clean, I’m ok with those folks having rights to LAPS.

Now, in AD, lets setup a Read & Reset Group, to grant access to LAPS. I’ve created two groups: LAPS Read Only & LAPS Reset PWD:

Now we need to grant Machines the ability to update it’s own password, we we grant access to the “SELF built-in account” for all machines in the Workstation OU: Set-AdmPwdComputerSelfPermission -OrgUnit <OU Name>

Next we need to grant users rights to look up that information, this is where those groups come in. We’re going to give “LAPS Read Only” rights to Read LAPS Passwords: Set-AdmPwdReadPasswordPermission -OrgUnit <OU Name> -AllowedPrincipals <FQDN Group Name>

We’re going to give “LAPS Reset PWD” rights to Reset LAPS Passwords: Set-AdmPwdReadPasswordPermission -OrgUnit <OU Name> -AllowedPrincipals <FQDN Group Name>

We’re also going to confirm it did something using the Find.. command:

Now, in AD, you can nest the groups you want in your LAPS Security Groups to have access:

For my Lab, I have Service Desk Tier 1 & 2 Read only, and Tier 3 can Reset.

Group Policy
You’ll need to copy the ADMX & ADML files you copied to your source folder into your Group Policy Central Store, which can be located here: \\FQDN\SYSVOL\FQDN\policies

Now you can Launch Group Policy and create your LAPS Policy. For this Demo, I’m going to create a new simple Policy, but you can always add it into one you already have. The new GPO is set to defaults, except I disable User Policies, as this will all be machine based, no point in having it look for user policies:

I’ve setup the basic settings to make this work with my lab. In my lab, I have a local admin account on the computer besides the disabled default, which is named “MyLocalAdmin”, which is the account I want LAPS to manage:

OK, that’s it, you have it all setup. Now it’s time to confirm you get the results you wanted

  • Permission Tests
    • Standard End Users (Should have No Rights)
    • Service Desk Tier 1 (Should have Read Access)
    • Service Desk Tier 3 (Should have Read / Reset Access)

Test 1: Standard User:

No access to view or reset LAPS password

Test 2: Tier 1 Service Desk:

Can Read Password but Not Reset Password

Test 3: Tier 3 Service Desk:

We learn from this test, Reset Permissions does not include Read. So, unless you have a need for a group to be able to reset this password, and not read it, I’d nest the LAPS Reset PWD group inside of the LAPS Read Only Group

Nested the LAPS Reset PWD group inside of the LAPS Read Only Group

Test again:

Can both Read & Reset the LAPS Password

Now we have the desired results, Tier 3 Support can both Read & Reset the LAPS password.

I hope you found this LAPS overview useful, and hopefully provided additional information not found in other ones. The main reason I’ve writing this, is for Part 2, configuring Recast Management Server User / Groups to view ReLAPS (LAPS) Dashboard in the CM Console. Stay Tuned!


RCT Tip of the Week: Using SUDS to Check Your ADR Work

The Software Update Deployment Status (SUDS) tool, is a great way to check on software update deployments and more proactively manage your environment.  SUDS can also help you address some of the more common Automatic Deployment Rule (ADR) issues so you can refine your automation and make sure your processes aren’t missing anything.

Navigate to SUDS: Monitoring tab-> Recast node-> Software Update Deployment Status tool.

Run a scan on the collection your ADR’s target for deployment.

Looking at the non-compliant results, you can determine if there might be ADR issues by checking the “Deployed” column.  If the update is part of your ADR’s and the column shows “False”, check out your ADR’s to see what you might have missed.

For more information about SUDS and the other RCT Security and Compliance Dashboards– check out out the video below, or visit our Wiki.  You can also schedule a demo to talk more specifically how RCT Enterprise can help in your environment.