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.
 
 

2.8 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, solution NTFSSecurity.sln (Visual Studio 2017 format).
  • Projects: NTFSSecurity (cmdlets), Security2 (ACL object model, Win32 interop), PrivilegeControl and ProcessPrivileges (token privileges), Log, TestClient, NTFSSecurityTest (MSTest, minimal coverage).
  • NuGet (packages.config): AlphaFS 2.2.x for long paths; System.Management.Automation.dll 10.0.10586.0.
  • Module: NTFSSecurity.psd1 loads NTFSSecurity.psm1 (aliases dir2, gi2, rm2, del2), NTFSSecurity.Init.ps1 (Add-Type of the helper assemblies, prepends NTFSSecurity.format.ps1xml), and NTFSSecurity.dll.
  • Documentation: MkDocs (mkdocs.yml, theme readthedocs, docs_dir: ./Docs) built by Read the Docs (.readthedocs.yml v2); cmdlet pages are platyPS 0.14 markdown (schema 2.0.0) in Docs/Cmdlets.

Environment

  • Windows only (NTFS, Win32 security APIs).
  • The Debug build writes straight into C:\Program Files\WindowsPowerShell\Modules\NTFSSecurity\.
  • No MSBuild or .NET Framework targeting pack on the 2026-10-02 workstation; the released module 4.2.6 and platyPS 0.14.2 were installed.

Constraints

  • ModuleVersion in the source manifest is 4.2.5; the latest tag and Gallery release is 4.2.6.
  • HEAD differs from tag 4.2.6 only by the Remove-Item2 -PassThur to -PassThru rename and CompatiblePSEditions in the manifest.
  • CmdletsToExport lists Show-NTFSSimpleAccess, which no longer exists (WinForms code removed in d3063de), and repeats the inheritance cmdlets.
  • NTFSSecurity/NTFSSecurity-Help.xml is a stale pre-4.x MAML file for old command names; binary-module help must be named NTFSSecurity.dll-Help.xml.
  • Read the Docs (ntfssecurity) and AppVeyor are attached to the fork Sup3rlativ3/NTFSSecurity, not to this repository.
  • Get-FileHash2 fails in PowerShell 7; all other cmdlets passed a smoke test in PowerShell 7.6.

Validation

  • Docs drift check (mirrors appveyor.yml), run in Windows PowerShell 5.1 to avoid PowerShell 7.4+ -ProgressAction noise: copy Docs/Cmdlets, run Update-MarkdownHelp on the copy against the module, and diff.
  • Placeholder check: no {{ left in Docs/Cmdlets/*.md.
  • Help build check: New-ExternalHelp -Path ./Docs/Cmdlets to a temp folder.
  • Markdown lint: npx markdownlint-cli2 with MD013 limited to prose (tables, code, and headings excluded) on the conceptual pages.
  • YAML: ConvertFrom-Yaml (powershell-yaml) on mkdocs.yml and .readthedocs.yml; every nav target must exist.
  • Link check in CI: Get-MarkdownLink -Path .\Docs\ -BrokenOnly.
  • MkDocs needs Python, which this workstation does not have; mkdocs build --strict was not run.