Release v2.13.0#257
Conversation
* default query mode * profileSize/ lastWrite changes + tests * v2.13.0 * MTP Tests * define MTP as separate secret * update test description * device query tests * Revert "device query tests" This reverts commit 32286ac. * update device query tests * device query tests * changelog * ignore deviceQueryFunctions generated in tests * set default state * revert to previous test for CI null description systems * missing test variable assignment + resolving skip behavior * address issue for single users
* CUT-5052 V3 StatusReporting (#247) * invoke * char * tests first pass * update tests * update * date --------- Co-authored-by: Joe Workman <joe.workman@jumpcloud.com> * PSScriptAnalyzer Fix * Update PSScriptAnalyzerSettings.psd1 * skip for now * PSUseOutputTypeCorrectly * Do not analyze test directory for now * exclude state changing functions rule * AvoidUsingEmptyCatchBlock * PSUseOutputTypeCorrectly * PSAvoidUsingWMICmdlet * PSAvoidAssignmentToAutomaticVariable * PSAvoidUsingWMICmdlet * PSAvoidUsingWMICmdlet * PSUseOutputTypeCorrectly * PSUseProcessBlockForPipelineCommand * PSAvoidAssignmentToAutomaticVariable * PSReviewUnusedParameter false positive * PSUseOutputTypeCorrectly * PSAvoidUsingWMICmdlet * change to Invoke-CimMethod * Update PSScriptAnalyzerSettings.psd1 * Update Test-MigrationButton.Acceptance.Tests.ps1 * Get rid of homePath -it's not used * changelog * suppress PSScriptAnalyzer failure * version * Invoke-CimMethod to unjoin domain * adding Pester and PSScriptAnalyzer to required * Change output verbosity * Update New-LocalUserProfile.ps1 set as string * CUT-5119: ADMU Prd03 support * Skip WindowsMDM from PSScriptAnalyzer * Revert "Skip WindowsMDM from PSScriptAnalyzer" This reverts commit 883c71f. * Allow path exclusions PSScriptAnalyzer * match support repo * fix invoke * Update ModuleChangelog.md * fix dateTime parsing from updated CimInstance * CUT-5119: check region by array * fix: bugbot alerts * show logged in (#253) Co-authored-by: Joe Workman <54448601+jworkmanjc@users.noreply.github.com> * Cut 5083 admu exe upload to jc commands option (#249) * Initial hanges pushed - Added SHA validation and localEXE options enabled * changelog * Build updated * Copy uwp_jcadmu.exe to C:\windows if localexe = True * Build updated * $RetryDelaySeconds configured * download url for uwp_jcadmu.exe set to static * fixed "UWP exe copy skips update when destination already exists" * The fallback for AllowUnvalidatedOnApiFailure now handles all network or API failures (not just rate limiting) * cursor review fixes * Configured IsValid to be determined by only valid hash match * The UWP EXE validation now only requires a hash match for IsValid, not a version match * changelog updated * Changes made as per review comments. * Fixed: Historical release date for v2.12.2 incorrectly changed * Merge conflicts managed and Release date updated --------- Co-authored-by: Joe Workman <54448601+jworkmanjc@users.noreply.github.com> * test in IN region * test in EU * test in EU * MTP tests * explicitly test with orgID * "| Remove-JCAssociation" bug for dynamic user groups * Revert "explicitly test with orgID" This reverts commit 309bf83. * revert test lines --------- Co-authored-by: Ken Maranion <97972790+kmaranionjc@users.noreply.github.com> Co-authored-by: Geoffrey Wein <geoffrey.wein@jumpcloud.com> Co-authored-by: Geoffrey Wein <89030113+gweinjc@users.noreply.github.com> Co-authored-by: lucasmendes-jc <lucas.mendes@jumpcloud.com> Co-authored-by: shashisinghjc <shashi.singh@jumpcloud.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Reviewed by Cursor Bugbot for commit e918003. Configure here.
jworkmanjc
left a comment
There was a problem hiding this comment.
Just leaving some notes as others look through this. Looks good to me, we've already approved the individual PRs that make up this release. Let me know if you have any questions?
|
|
||
| [Parameter()] | ||
| [bool] | ||
| `$localExes |
There was a problem hiding this comment.
Tested locally:
Making a note we will have a fast follow in https://jumpcloud.atlassian.net/jira/software/c/projects/CUT/boards/147?selectedIssue=CUT-5156
I've had to add an extra parameter to test our locally build unsigned EXEs here.
There was a problem hiding this comment.
Note fast follow on https://jumpcloud.atlassian.net/browse/CUT-5157 to add parameters here, not to document on the Wiki just yet.
There was a problem hiding this comment.
Example of changes, issues found linting with PSScriptAnalyzer.
There was a problem hiding this comment.
Again getting rid of WmiObject calls was part of PSScriptAnalyzer linting
| [Parameter(Mandatory = $true)][string]$WindowsDrive, | ||
| [Parameter(Mandatory = $false)][bool]$localEXEs = $false, | ||
| [Parameter(Mandatory = $false)][int]$MaxRetries = 3, | ||
| [Parameter(Mandatory = $false)][int]$RetryDelaySeconds = 30 |
There was a problem hiding this comment.
Again noting we'll need to add a skip here to test locally. To solve for in: https://jumpcloud.atlassian.net/browse/CUT-5156
* revert via gui_admu.exe * resolve issue with test-jumpcloudusername halting migration without apikey * resolve issue with profilepath parameter during revert * formatting * prep for release * validate autobind + apikey * hide pwsh window
junioralmeida-82
left a comment
There was a problem hiding this comment.
LGTM! Approved based on previous individual PR reviews.
gweinjc
left a comment
There was a problem hiding this comment.
This looks good to me; approved


Issues
Remote Migration Features
Commands Option
Code Quality
Production India Region
BugFixes
What does this solve?
I'll group these into several categories:
Remote Migration Features
At a high level this release includes several quality of life enhancements for the device description. First and foremost the
deviceQuery.ps1script was updated to include a few changes for reporting over time. LastLogin, LastWrite fields should be updated on subsequent runs. LastWrite is calculated from the last time the user's registry hive (NTUSER.DAT) was written. This can differ slightly from LastLogin and was added.There's a new
profileSizefield that's calculated to track profile size in GB to help identify users that need to be migrated.Additional the
deviceQueryscript now will default to a mode called "auto" which will mark all users as "skip" if there are many users on the device. If the script only identifies one user on the device they'll be marked pending. This is useful for scenarios where AD devices have many users on the devices. It's likely the case that only one will end up being migrated - marking all as skip then going back and updating them seems like a better choice.Additional scripts in
DeviceInitdirectory for getting all device descriptions and setting device descriptions to bulk update devices.Lastly the Generated EXE can now accept "Revert" parameters, there are two parameters sets now used in the exe
Code Quality
Pester Tests for PSScriptAnalyzer are generally now going to cover a majority of the codebase.
Production India Region
This has been added
BugFixes
One "bug" was identified were a user would run the ADMU GUI on their account
localhost\firstname.lastnameand that user's account was never displayed in the GUI window under accounts to migrate. This was a design choice but has been reverted. Now this account will show up if the user is signed in but a message is displayed that the account can not be migrated. You can not migrate your account while logged in.Is there anything particularly tricky?
How should this be tested?
See previous PRs
Screenshots
Note
Medium Risk
Medium risk because this changes migration/reversion execution paths (including new
localEXEsbehavior and system-description based workflows) and expands region/auth endpoint selection, which can affect remote automation and JumpCloud API calls.Overview
Release
2.13.0adds multiple remote-migration workflow upgrades: device-description based discovery now tracks more fields (e.g.,lastWrite,lastLoginValid,profileSize) with smarter default state selection (Auto Pending/Skip), and new org-wide scripts export/import device-description user objects via CSV for bulk review and updates.Migration/advanced-deployment invocation gains a
localEXEsmode to use locally stagedgui_jcadmu.exe/uwp_jcadmu.exe(with best-effort GitHub SHA/version validation and fallback handling), and the generated EXE template now supports a dedicated CLI Revert parameter set to runStart-Reversionnon-interactively.Adds India region support across URL selection (
Set-JCUrl, SystemContext/agent host detection, user/org lookups) and includes a broad set of code quality tweaks: more consistent CIM usage (replacing WMI patterns), addedOutputTypeannotations, Pester verbosity/config updates, and CI dependency additions (Pester,PSScriptAnalyzer), along with version/changelog/UI title bumps.Reviewed by Cursor Bugbot for commit a563710. Bugbot is set up for automated code reviews on this repo. Configure here.