mirror of https://github.com/raandree/NTFSSecurity
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.2 KiB
5.2 KiB
| status | last-verified | owner | source |
|---|---|---|---|
| current | 2026-10-02 | active-agent | repository evidence |
Tech context
Stack
- C# class libraries, old-style
.csproj, .NET Framework 4.5.2, solutionNTFSSecurity.sln(Visual Studio 2017 format). - Projects:
NTFSSecurity(cmdlets),Security2(ACL object model, Win32 interop),PrivilegeControlandProcessPrivileges(token privileges),Log,TestClient,NTFSSecurityTest(MSTest, minimal coverage). - NuGet (
packages.config): AlphaFS 2.2.x for long paths;System.Management.Automation.dll10.0.10586.0. - Module:
NTFSSecurity.psd1loadsNTFSSecurity.psm1(aliasesdir2,gi2,rm2,del2),NTFSSecurity.Init.ps1(Add-Type of the helper assemblies, prependsNTFSSecurity.format.ps1xml), andNTFSSecurity.dll. - Documentation: MkDocs (
mkdocs.yml, themereadthedocs,docs_dir: ./Docs) built by Read the Docs (.readthedocs.ymlv2); cmdlet pages are platyPS 0.14 markdown (schema 2.0.0) inDocs/Cmdlets. - Help:
NTFSSecurity\en-US\NTFSSecurity.dll-Help.xml, generated fromDocs/Cmdletsand committed (Decision 8). - Tests: Pester 5 tests in
Tests(Help.Tests.ps1) against the Release build.
Environment
- Windows only (NTFS, Win32 security APIs).
- The Debug build writes straight into
C:\Program Files\WindowsPowerShell\Modules\NTFSSecurity\. - No Visual Studio MSBuild or .NET Framework targeting pack on the
workstation. A local build works with the .NET Framework MSBuild
(
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe) plus/p:CscToolPathto the Roslyncsc.exeof theMicrosoft.Net.Compilerspackage; the legacy C# 5 compiler fails with CS0136.dotnet msbuildfails on the binary resources inResources.resx(MSB3822, MSB3823). - platyPS 0.14.2, Pester 5.7.1, PSScriptAnalyzer, and powershell-yaml are
installed only for PowerShell 7. Windows PowerShell 5.1 imports platyPS
and Pester by full path
(
~\OneDrive\Documents\PowerShell\Modules\platyPS\0.14.2,C:\Program Files\PowerShell\Modules\Pester\5.7.1) with$env:PSModulePathcleared. MarkdownLinkCheck is not installed.
Constraints
ModuleVersionin the source manifest is4.2.5; the latest tag and Gallery release is4.2.6.- HEAD differs from tag
4.2.6only by theRemove-Item2 -PassThurto-PassThrurename andCompatiblePSEditionsin the manifest. CmdletsToExportlistsShow-NTFSSimpleAccess, which no longer exists (WinForms code removed ind3063de), and repeats the inheritance cmdlets.Test-ModuleManifestfails in Windows PowerShell 5.1:CompatiblePSEditionsrequiresPowerShellVersion5.1 or higher, and the manifest says2.0(work package 4).- Releases have no script and no CI deployment. Evidence from 4.2.6: the
Gallery DLLs are Debug builds (
DebuggableAttribute263), the nuspec comes fromPublish-Module, the package holds the whole output folder (.pdb,AlphaFS.xml, 7 MBSystem.Management.Automation.dll), and the published manifest differs from the tag only byModuleVersion(tags carry the previous version). GitHub releases attachNTFSSecurity.zip. - CI: AppVeyor project
raandree/ntfssecuritybuilds branches and pull requests. Read the Docs (ntfssecurity) and a second AppVeyor project are attached to the forkSup3rlativ3/NTFSSecurity. Get-FileHash2fails in PowerShell 7; all other cmdlets passed a smoke test in PowerShell 7.6.CHANGELOG.mdlists user-visible changes only; CI and build-only changes get no entry (Decision 7).
Validation
- CI (
appveyor.yml, image Visual Studio 2022): restorepackages.configper project plusMicrosoft.NETFramework.ReferenceAssemblies.net4521.0.3, buildNTFSSecurity.csprojin Release withTargetFrameworkRootPath/FrameworkPathOverride, importNTFSSecurity\bin\Release\NTFSSecurity.psd1, then: 01 runUpdate-MarkdownHelpand fail ongit diff -- Docs/Cmdlets; 02Get-MarkdownLink -BrokenOnly; 03 regenerate the help file and fail ongit status --porcelain -- NTFSSecurity/en-US; 04 Pester 5.7.1 onTests, each result reported once through the build worker API (POST $env:APPVEYOR_API_URL/api/tests/batch). - AppVeyor REST API (public, no token): build
api/projects/raandree/ntfssecurity/builds/<buildId>, job logapi/buildjobs/<jobId>/log(bytes; decode as UTF-8), and test listapi/buildjobs/<jobId>/tests. - Run platyPS in Windows PowerShell 5.1 to avoid PowerShell 7.4+
-ProgressActionnoise. - Placeholder check: no
{{left inDocs/Cmdlets/*.md. - Help file:
New-ExternalHelp -Path .\Docs\Cmdlets -OutputPath .\NTFSSecurity\en-US -Forcemust leavegit statusunchanged. - Pester: run detached (
Start-DetachedPowerShell.ps1) in Windows PowerShell 5.1; a run withoutbin\Release\en-USmust fail. - Markdown lint:
npx markdownlint-cli2withMD013limited to prose (tables, code, and headings excluded) on the conceptual pages. - YAML:
ConvertFrom-Yaml(powershell-yaml) onmkdocs.yml,.readthedocs.yml, andappveyor.yml; everynavtarget must exist. - MkDocs needs Python, which this workstation does not have;
mkdocs build --strictwas not run.