# Lab acceptance of 5.0.0-rc6 Acceptance of the release candidate 5.0.0-rc6 in the lab, on 2026-10-08, before the pull request. It follows the procedure in the [README](README.md#acceptance-of-a-release-candidate). The candidate changed twice during the acceptance. The run of `acfe3af` passed; the coverage report of the candidate then found three defects, which `0df2482` and `1b9edbb` fix, and the run of `1b9edbb` passed as well; a second review led to `7b0781f`. This record describes the run of `7b0781f`, the last commit of the pull request that changes the module, and names the results of the earlier runs. ## Candidate - Branch `ai/release-5.0.0-rc6`, commit `7b0781ff8bb2c1ee4087a16411acd4c7070ba1fa`, 31 commits on `fcb370e` (5.0.0-rc5). - Release build of that commit, packaged with `.github\scripts\New-ModulePackage.ps1`. The live tests imported the module from the extracted `NTFSSecurity.zip`. CI builds the packages that the tag publishes again, so their hashes differ; the live tests run once more against the published package. | SHA-256 | File | | --- | --- | | `E99B5123F45E4F56AC005C629C2241DC616B2AAC152C17EA57A67C0823FFCA10` | `NTFSSecurity.5.0.0-rc6.nupkg` | | `53C020EAD59467A407ED755F3D9296E9C70AFFAB184CF9CDF27AF92117FBBEE0` | `NTFSSecurity.zip` | | `F438D7FDB3F5A1D75F5CA48D7B610EED31215FF1BF9C185C6856AA365D195C8D` | `NTFSSecurity\NTFSSecurity.dll` | | `EE1B0DF9619C998A4482F3F79DCB2191BBEAD859660D6D924D1F333DBE7CBBCE` | `NTFSSecurity\Security2.dll` | | `902157ABBD2E0B76DA744A918BDD174D5226C3494908ABA75F9E5DE28AE6A008` | `NTFSSecurity\ProcessPrivileges.dll` | | `E2077AFEB38703345AE7857C1266F8B26E167ED887BFFAC8C8169A8F267BE6E9` | `NTFSSecurity\PrivilegeControl.dll` | | `A8DA47194AB0F71232C69D01955AD93BA73C7ECEB58D0DE800CA085D4A2E18D8` | `NTFSSecurity\AlphaFS.dll` | | `75DA9F7A54DF7011968BACB3FDF5E30B33F4C078861D1DF87BC06F5E64A962D8` | `NTFSSecurity\NTFSSecurity.psd1` | | `3F777E9D141EE0046119DA9D5ECF88A3BC7E023726098FE2FB150528E2FB59B8` | `NTFSSecurity\NTFSSecurity.psm1` | | `59583423241951EBE0FC2D8237D0C28C3ECC8C7CD2C115D2660F8579888632FC` | `NTFSSecurity\NTFSSecurity.Init.ps1` | | `FB0920CC37ED858F55AFD54998DC854E27FBBE6A0177CB059CB03CFE91361197` | `NTFSSecurity\NTFSSecurity.format.ps1xml` | | `CB6882FF91E6716605D5599E7B464C3346E461216ACED07E847621738F04FB9B` | `NTFSSecurity\NTFSSecurity.types.ps1xml` | | `5115D0D76CA2A06795CD754539AC7EC19A70591E8C5616E7BEB5AE66E6971E6D` | `NTFSSecurity\en-US\NTFSSecurity.dll-Help.xml` | ## Tests without a lab The Pester suite of the commit, 684 tests, against the same build. No test failed, and every test ran in at least one configuration. | Configuration | Passed | Failed | Skipped | | --- | ---: | ---: | ---: | | Windows PowerShell 5.1, elevated | 662 | 0 | 22 | | PowerShell 7, elevated | 632 | 0 | 52 | | Windows PowerShell 5.1, basic user | 590 | 0 | 94 | | PowerShell 7, basic user | 560 | 0 | 124 | The C# coverage of the four configurations, measured with AltCover on `1b9edbb`: 68.1% of the lines and 44.3% of the branches. ## Lab `WindowsAccessControlLab` (AutomatedLab on Hyper-V). Every machine runs Windows Server 2025 Datacenter (10.0.26100). | Machine | Domain | Role in the tests | | --- | --- | --- | | `F1ADC1` | `a.forest1.net` | Domain controller of the accounts | | `F1AFile1` | `a.forest1.net` | Client that runs the tests | | `F1AFile2` | `a.forest1.net` | File server with the share | | `F1BDC1` | `b.forest1.net` | Account of another domain of the forest | | `F2DC1` | `forest2.net` | Account of another forest | | `F3DC1` | `forest3.net` | Account of another forest | Readiness, checked before each run: WinRM answered on all six machines. The four domain controllers answered LDAP (RootDSE, synchronized) and issued a Kerberos ticket for `krbtgt`. The client and the file server found a domain controller, had a working secure channel, and got a service ticket for each other. The clocks were 4.3 to 5.0 seconds ahead of the host. Checkpoints (Production) of the six machines, taken before each run: `ntfs-rc6-acfe3af-before-acceptance` (11:07 UTC), `ntfs-rc6-1b9edbb-before-acceptance` (12:21 UTC), and `ntfs-rc6-7b0781f-before-acceptance` (12:50 UTC). ## Results `Invoke-NTFSSecurityLabTest.ps1 -ModulePath ` in both editions, 12:51 to 13:07 UTC. The module reported version 5.0.0-rc6 in every role that loads it. | Edition | Role | Passed | Failed | Skipped | | --- | --- | ---: | ---: | ---: | | Windows PowerShell 5.1 | Delegate | 38 | 0 | 0 | | Windows PowerShell 5.1 | ServerAdmin | 13 | 0 | 0 | | Windows PowerShell 5.1 | Admin | 40 | 0 | 0 | | Windows PowerShell 5.1 | Server | 72 | 0 | 1 | | PowerShell 7 | Delegate | 38 | 0 | 0 | | PowerShell 7 | ServerAdmin | 13 | 0 | 0 | | PowerShell 7 | Admin | 40 | 0 | 0 | | PowerShell 7 | Server | 72 | 0 | 1 | The role Server skips the check of the module version, because it doesn't load the module. The accounts of the other domain and forests were `B\NtfsLiveForeign`, `forest2\NtfsLiveForeign`, and `forest3\NtfsLiveForeign`; their 13 tests passed in both editions. The earlier runs had the same counts and no failure: `acfe3af` from 11:08 to 11:25 UTC, and `1b9edbb` from 12:23 to 12:39 UTC. ## Baseline The published 5.0.0-rc5 from the PowerShell Gallery, whose hash the script checks against the one the Gallery publishes, in Windows PowerShell 5.1, 11:26 to 11:34 UTC: Delegate 38 passed, ServerAdmin 13, Admin 38 passed and 2 failed, Server 72 passed and 1 skipped. The two failures are the defect that 5.0.0-rc6 fixes: on the share, `Get-NTFSHardLink` and `New-NTFSHardLink -PassThru` stopped with the terminating error "(50) The request is not supported" instead of writing a `GetHardLinkError`. The new cases find no other difference between the two versions; the local tests cover the other fixes of 5.0.0-rc6. ## Cleanup `Invoke-NTFSSecurityLabTest.ps1 -RemoveFixture` after each run: at 11:38 UTC after the first run and the baseline, at 12:48 UTC after the second, and at 13:09 UTC after the third. Each check compared the lab with the 10 SIDs of the fixture's accounts and groups, read before the removal; the same check had found the fixture before the first removal. After each removal: - No domain has the organizational unit `NTFSSecurityLive` or an account whose name starts with `NtfsLive`. - The file server has no share `NTFSSecurityLive`, no folder `C:\NTFSSecurityLive` or `C:\NTFSSecurityLab`, and no local group `NtfsLiveLocal`. - The client has no folder `C:\NTFSSecurityLab`. - On both machines, Administrators, Access Control Assistance Operators, and Remote Management Users have no member of the fixture, and no profile of the fixture's accounts is left. The three checkpoints stay on the six machines until the maintainer deletes them. ## Not covered - Other operating systems than Windows Server 2025, such as a Windows 11 client and Server 2019 or 2022 file servers: Phase 3 of the quality gate. - File servers that aren't Windows, such as the IBM ESS system of #34: only the feedback of the reporter covers them. ## After the release The tag `5.0.0-rc6` on `b51d970`, the merge of #115, published the package to the PowerShell Gallery on 2026-10-08 at 20:40 UTC. The **Release** job failed after the upload: `Publish-PSResource` stopped waiting for the Gallery after 100 seconds while the Gallery accepted the package, and its second attempt got the error 409, "already exists". So the job didn't create the GitHub release; rerunning the failed job creates it, as [If a release fails](../../Docs/Contributing/05-Releasing.md#if-a-release-fails) describes. `Invoke-NTFSSecurityLabTest.ps1 -Version 5.0.0-rc6` downloaded the package from the Gallery, checked it against the SHA-512 that the Gallery publishes, and ran in both editions, 20:43 to 21:00 UTC. The SHA-256 of `NTFSSecurity.5.0.0-rc6.nupkg` is `83EBCADEE0698A9523661352A69B9D25F6EB2903F45A6C4FAB36F5BF4B139100`. The live tests came from the branch of 5.0.0-rc7, which expects the warning of `Get-NTFSEffectiveAccess` for a computer that can't be reached to name the computer. The package failed only that test, in the role Admin of both editions, with exactly the text that the live tests of 5.0.0-rc6 expect; every other test passed: Delegate 38, ServerAdmin 13, Admin 39, and Server 72 with 1 skipped, in each edition. The fixture was removed at 21:03 UTC, and its removal checked as above.