PHPackages                             soberhofer/laps - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. soberhofer/laps

ActiveLibrary

soberhofer/laps
===============

macOSLAPS module for munkireport.

v2.0.1(4y ago)07MITPHP

Since Dec 5Pushed 4y agoCompare

[ Source](https://github.com/soberhofer/laps)[ Packagist](https://packagist.org/packages/soberhofer/laps)[ RSS](/packages/soberhofer-laps/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (12)Used By (0)

macOSLAPS module
================

[](#macoslaps-module)

This module uses a modified version of Joshua Miller's macOSLAPS script:

[![macOSLAPS Management](https://raw.githubusercontent.com/munkireport/laps/master/macOSLAPS%20Management.png)](https://raw.githubusercontent.com/munkireport/laps/master/macOSLAPS%20Management.png)

Configuration
-------------

[](#configuration)

The macOSLAPS module requires an encryption key before it will work. The key can be generated by going to the macOSLAPS Management page under the Admin tab. laps\_password\_decrypt\_enabled controls all global password decrypting. If it is set to FALSE, MunkiReport will never return plaintext password. view\_laps\_password is an array of users that you want to grant permission to view the passwords. If commented out all users will be able to view the passwords.

The configuration can be changed by adding them to the server environment variables or the `.env` file.

```
	LAPS_ENCRYPTION_KEY=
	LAPS_PASSWORD_DECRYPT_ENABLED=TRUE
	VIEW_LAPS_PASSWORD=

```

Table Schema
------------

[](#table-schema)

The table provides the following information per client:

- useraccount - User account of local admin whose password MunkiReport has
- password - Encrypted password of local admin account
- dateset - Epoch of when password was last set
- dateexpires - Epoch of when password expired
- script\_enabled - Boolean of if password changing is enabled on client
- days\_till\_expiration - Number of days between changing password
- alpha\_numeric\_only - Boolean of if password should only contain alphanumeric characters
- keychain\_remove - Boolean of if local admin keychain should be deleted when password is changed
- pass\_length - Length of the new password
- remote\_management - Boolean of if remote management is enabled
- audit - JSON array of auditing records

Remarks
=======

[](#remarks)

Module requires a crypto key. It can be made by calling `vendor/defuse/php-encryption/bin/generate-defuse-key` in the root of the munkireport directory or by visiting the macOSLAPS Management page in the Admin dropdown menu. Add the resulting key to `config.php` as `$conf['laps_encryption_key'] = 'def00000505fe726...34'`. The local password is encrypted before it enters the database and is decrypted after retrieval. Don't lose the encryption key or your local passwords are lost forever!

To control password decryption, you can set `$conf['laps_password_decrypt_enabled']` to `FALSE`. This will globally disable the show password buttons in the UI and sending the decrypted password out via API. To limit password decryption to only certain users, add their username to the `$conf['view_laps_password']` array. If this array is commented out, everyone will be able to view the password or access them via the API. The `$conf['laps_password_decrypt_enabled']` config overrides the `$conf['view_laps_password']` config when disabling all password viewing.

This module will not run if Joshua Miller's script/binary is installed, as they will conflict and cause problems.

macOSLAPS script is triggered and run by MunkiReport's preflight script.

Uses similar preferences to the macOSLAPS script and will respect profiles if used. Preference domain is `org.munkireport.laps` and has the following options:

- `LocalAdminAccount` - Short username of the local admin account to cycle the password for, default is `admin`
- `PasswordLength` - Length of password to set, default is `12`
- `DaysTillExpiration` - How long until the password is reset, default is `60`
- `RemoveKeyChain` - Remove the keychain of the local admin, default is `True`
- `AlphaNumericOnly` - Use only alphanumeric characters when making the password, default is `True`
- `RemovePassChars` - Characters to not include in the password, default is `'{}[]|`
- `Enabled` - If set to `True` macOSLAPS script will change password when it expires, default is `True`
- `RemoteManagementEnabled` - If `True` script will prioritize settings pulled from MunkiReport's database over local preferences, defaults, and profiles, default is `True`

Module will delete cached password after it verifies password is stored on MunkiReport server. This script will not (yet) change the local admin user's FileVault 2 password, if that account is authorized to unlock the drive.

Client log can be found at `/Library/Logs/macOSLAPS.log`

Module supports remote management under the Admin&gt;macOSLAPS Management page. Clients will first populate preferences with built in defaults or from profile on first run, unless client is already in MunkiReport's `laps` table. Available in the macOSLAPS Admin page are options to configure supported remote management settings, force the password to be cycled, and viewing of the audit trail. All actions are audited server side. The audit trail is viewable within the macOSLAPS Management page for either one serial number or all audit logs.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~139 days

Recently: every ~183 days

Total

10

Last Release

1461d ago

Major Versions

v1.8 → v2.02022-02-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/426b4441bf1cb56daa787d128538a8ddf723df8ea3db0ea9c9f969a926b3a4b6?d=identicon)[soberhofer](/maintainers/soberhofer)

---

Top Contributors

[![tuxudo](https://avatars.githubusercontent.com/u/13306723?v=4)](https://github.com/tuxudo "tuxudo (13 commits)")[![bochoven](https://avatars.githubusercontent.com/u/1429002?v=4)](https://github.com/bochoven "bochoven (4 commits)")[![soberhofer](https://avatars.githubusercontent.com/u/17880532?v=4)](https://github.com/soberhofer "soberhofer (4 commits)")[![joncrain](https://avatars.githubusercontent.com/u/5123982?v=4)](https://github.com/joncrain "joncrain (3 commits)")[![MagerValp](https://avatars.githubusercontent.com/u/404393?v=4)](https://github.com/MagerValp "MagerValp (2 commits)")

### Embed Badge

![Health badge](/badges/soberhofer-laps/health.svg)

```
[![Health](https://phpackages.com/badges/soberhofer-laps/health.svg)](https://phpackages.com/packages/soberhofer-laps)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
