{"id":13596637,"url":"https://github.com/EvotecIT/PSWinDocumentation","last_synced_at":"2025-04-09T16:33:26.993Z","repository":{"id":95331781,"uuid":"139115343","full_name":"EvotecIT/PSWinDocumentation","owner":"EvotecIT","description":"PowerShell Module that creates Word/Excel/SQL documentation from Active Directory (AD), AWS, Office 365 and others. It's a work in progress!","archived":false,"fork":false,"pushed_at":"2021-04-12T07:27:19.000Z","size":1014,"stargazers_count":250,"open_issues_count":13,"forks_count":38,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-10-29T21:06:12.355Z","etag":null,"topics":["hacktoberfest","powershell"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EvotecIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"PrzemyslawKlys","custom":["https://paypal.me/PrzemyslawKlys"]}},"created_at":"2018-06-29T07:20:17.000Z","updated_at":"2024-10-28T14:43:40.000Z","dependencies_parsed_at":"2023-05-02T20:31:33.868Z","dependency_job_id":null,"html_url":"https://github.com/EvotecIT/PSWinDocumentation","commit_stats":{"total_commits":325,"total_committers":4,"mean_commits":81.25,"dds":0.1446153846153846,"last_synced_commit":"4da4851525ee35eac42c9f6a60315fb0ae9359f1"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvotecIT%2FPSWinDocumentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvotecIT%2FPSWinDocumentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvotecIT%2FPSWinDocumentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvotecIT%2FPSWinDocumentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EvotecIT","download_url":"https://codeload.github.com/EvotecIT/PSWinDocumentation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223403657,"owners_count":17139936,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","powershell"],"created_at":"2024-08-01T16:02:36.856Z","updated_at":"2024-11-06T19:33:19.991Z","avatar_url":"https://github.com/EvotecIT.png","language":"PowerShell","funding_links":["https://github.com/sponsors/PrzemyslawKlys","https://paypal.me/PrzemyslawKlys"],"categories":["PowerShell"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://dev.azure.com/evotecpl/PSWinDocumentation/_build/latest?definitionId=3\"\u003e\u003cimg src=\"https://dev.azure.com/evotecpl/PSWinDocumentation/_apis/build/status/EvotecIT.PSWinDocumentation\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.powershellgallery.com/packages/PSWinDocumentation\"\u003e\u003cimg src=\"https://img.shields.io/powershellgallery/v/PSWinDocumentation.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.powershellgallery.com/packages/PSWinDocumentation\"\u003e\u003cimg src=\"https://img.shields.io/powershellgallery/vpre/PSWinDocumentation.svg?label=powershell%20gallery%20preview\u0026colorB=yellow\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/EvotecIT/PSWinDocumentation\"\u003e\u003cimg src=\"https://img.shields.io/github/license/EvotecIT/PSWinDocumentation.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.powershellgallery.com/packages/PSWinDocumentation\"\u003e\u003cimg src=\"https://img.shields.io/powershellgallery/p/PSWinDocumentation.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/EvotecIT/PSWinDocumentation\"\u003e\u003cimg src=\"https://img.shields.io/github/languages/top/evotecit/PSWinDocumentation.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/EvotecIT/PSWinDocumentation\"\u003e\u003cimg src=\"https://img.shields.io/github/languages/code-size/evotecit/PSWinDocumentation.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.powershellgallery.com/packages/PSWinDocumentation\"\u003e\u003cimg src=\"https://img.shields.io/powershellgallery/dt/PSWinDocumentation.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/PrzemyslawKlys\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/PrzemyslawKlys.svg?label=Twitter%20%40PrzemyslawKlys\u0026style=social\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://evotec.xyz/hub\"\u003e\u003cimg src=\"https://img.shields.io/badge/Blog-evotec.xyz-2A6496.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.linkedin.com/in/pklys\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-pklys-0077B5.svg?logo=LinkedIn\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# PSWinDocumentation - PowerShell Module\n\nOverview of this module is available at: \u003chttps://evotec.xyz/hub/scripts/pswindocumentation-powershell-module/\u003e\n\n## This module utilizes three projects of mine\n\n- [PSWriteWord](https://evotec.xyz/hub/scripts/pswriteword-powershell-module/) - creating **Microsoft Wor**d without Word installed from PowerShell\n- [PSWriteExcel](https://evotec.xyz/hub/scripts/pswriteexcel-powershell-module/) - creating **Microsoft Excel** without Excel installed from PowerShell\n- [PSSharedGoods](https://github.com/EvotecIT/PSSharedGoods) - bunch of useful functions that I share among all of my projects\n\nAll 3 modules above are under active development.\n\n## For additional functionality it utilizes\n\n- [AWSPowershell](https://www.powershellgallery.com/packages/AWSPowerShell/) - allows connecting to AWS and creating AWS dataset\n- [ActiveDirectory RSAT](https://www.microsoft.com/en-us/download/details.aspx?id=45520) - allows connecting to AD and creating Active Directory dataset\n- [DBATools](https://www.powershellgallery.com/packages/dbatools/) - allows connecting to SQL and sending data to SQL (create table, alter table, inserts)\n- [DSInternals](https://www.powershellgallery.com/packages/DSInternals) - required for Password Audit in Active Directory\n\nYou have to install those modules **yourself**. I don't bundle them but it's as easy as typing `Install-Module \u003cYourModule\u003e`. While I could bundle them and maybe some day I will but for now it's too heavy as this module can be installed on AD servers directly - so I don't want you to overload your DC's - even if it's just PowerShell Module.\n\n## Goals\n\nUltimate goal of this project is to have proper documentation of following services:\n\n- Active Directory\n- AWS\n- Microsoft Exchange (mostly Excel / SQL export oriented)\n- Office 365 Exchange Online (mostly Excel / SQL export oriented)\n- Office 365 Azure AD (mostly Excel / SQL export oriented)\n- Office 365 Teams (not started)\n- Office 365 Skype for Business (not started)\n- Office 365 Intune (not started)\n- Office 365 SharePoint (not started)\n- Windows Server (some basic stuff - not functionable)\n- Windows Workstation (some basic stuff - not functionable)\n\nI'm heavily open for feature requests and people willing to create data sets. By data sets I mean data prepared to be included in report (usually HashTable, OrderedHashTable, Array or PSCustomobject). This module is smart enough that it can easily convert that data into Word Sections. Also don't really pay attention to percentage numbers. If you have request I will consier adding it.\n\n## Updates\n\n- 0.5.4 / Unreleased\n  - [x] Added `Invoke-Documentation` for oneliner fun\n\n- 0.5.3 / 2020.06.22\n  - Updated modules to newest versions\n- 0.5.0 / 2019.06.23\n  - Updated with support for PSWriteWord 1.0.0\n  - Updated with support for PSSharedGoods 0.0.79\n  - Updated with support for PSWriteExcel 0.7.2\n\n- 0.3.x / 2018.10.08 - [full blog post](https://evotec.xyz/pswindocumentation-audit-active-directory-passwords/)\n  - Added **audit your Active Directory Passwords**\n  - Expanded Active Directory data types (computer based)\n  - Expanded Active Directory data types (fine grained policies)\n  - Couple of fixes here and there\n- 0.2.x / 2018.09.23 - [full blog post](https://evotec.xyz/pswindocumentation-export-to-word-excel-sql-of-ad-aws-exchange-o365-exchange-o365-azure-ad/)\n  - Allows Exporting to Microsoft SQL (that's right – export data directly to SQL – complete with create table, alter table and inserts)\n  - Basic data set AWS\n  - Advanced data set Active Directory\n  - Basic data set Microsoft Exchange\n  - Basic data set Office 365 – Exchange Online\n  - Basic data set Office 365 – Azure AD\n  - Prescanning of data headers for exports (unravel hidden data)\n  - Ability to define TableColumnWidths in sections\n\n- 0.1 / 2018.08.23\n  - Large release\n  - You can read about it in separate [blog post](https://evotec.xyz/pswindocumentation-version-0-1-with-word-excel-export/)\n  - Watch about it on [YouTube](https://youtu.be/6Vr3hEo2510) and [YouTube](https://youtu.be/c2kD_duHgTw)\n- 0.0.5 / 2018.07.30\n  - fix for DefaultPassWordPolicy MinPasswordLength (was reporting wrong value)\n- 0.0.4 / 2018.07.30\n  - added domain controllers section\n  - added few verbose messages with -Verbose switch for easier debugging\n  - commented out some unused code for now (to speed up work)\n- 0.0.3 / 2018.07.29\n  - first \"good\" release\n\n## Progress on Documentation\n\n### Active Directory\n\nFollowing is **very incomplete list** of things that are done or are planned in near future. I really need to update that.\n\n- [x] Forest Summary\n- [x] Forest FSMO Roles\n- [x] Forest Optional Features (Recycle Bin, PAM)\n- [x] Forest UPN List\n- [x] Forest SPN List\n- [x] Domain Summary\n- [ ] Domain Controllers\n  - [X] Basic information\n  - [ ] Basic hardware information\n- [x] Domain FSMO Roles\n- [x] Domain Password Policies\n- [x] Domain Group Policies\n- [ ] Domain Organizational Units\n  - [ ] Requires work. Currently a bit useless\n- [x] Domain Privileged Members (Groups)\n- [x] Domain Administrators (All users)\n- [x] Domain User Count\n  - [X] Users Count Incl. System\n  - [X] Users Count\n  - [X] Users Expired\n  - [X] Users Expired Incl. Disabled\n  - [X] Users Never Expiring\n  - [X] Users Never Expiring Incl. Disabled\n  - [X] Users System Accounts\n- [ ] Domain User List (deciding if needed)\n  - [ ] Users Count Incl. System\n  - [ ] Users Count\n  - [ ] Users Expired\n  - [ ] Users Expired Incl. Disabled\n  - [ ] Users Never Expiring\n  - [ ] Users Never Expiring Incl. Disabled\n  - [ ] Users System Accounts\n\n### Active Directory Data Sources - to use with new version\n\n```powershell\npublic enum ActiveDirectory {\n    // Forest Information - Section Main\n    ForestInformation,\n    ForestFSMO,\n    ForestGlobalCatalogs,\n    ForestOptionalFeatures,\n    ForestUPNSuffixes,\n    ForestSPNSuffixes,\n    ForestSites,\n    ForestSites1,\n    ForestSites2,\n    ForestSubnets,\n    ForestSubnets1,\n    ForestSubnets2,\n    ForestSiteLinks,\n\n    // Domain Information - Section Main\n\n    DomainRootDSE,\n    DomainRIDs,\n    DomainAuthenticationPolicies, // Not yet tested\n    DomainAuthenticationPolicySilos, // Not yet tested\n    DomainCentralAccessPolicies, // Not yet tested\n    DomainCentralAccessRules, // Not yet tested\n    DomainClaimTransformPolicies, // Not yet tested\n    DomainClaimTypes, // Not yet tested\n    DomainFineGrainedPolicies,\n    DomainFineGrainedPoliciesUsers,\n    DomainFineGrainedPoliciesUsersExtended,\n    DomainGUIDS,\n    DomainDNSSRV,\n    DomainDNSA,\n    DomainInformation,\n    DomainControllers,\n    DomainFSMO,\n    DomainDefaultPasswordPolicy,\n    DomainGroupPolicies,\n    DomainGroupPoliciesDetails,\n    DomainGroupPoliciesACL,\n    DomainOrganizationalUnits,\n    DomainOrganizationalUnitsBasicACL,\n    DomainOrganizationalUnitsExtended,\n    DomainContainers,\n    DomainTrusts,\n\n    // Domain Information - Group Data\n    DomainGroupsFullList, // Contains all data\n\n    DomainGroups,\n    DomainGroupsMembers,\n    DomainGroupsMembersRecursive,\n\n    DomainGroupsSpecial,\n    DomainGroupsSpecialMembers,\n    DomainGroupsSpecialMembersRecursive,\n\n    DomainGroupsPriviliged,\n    DomainGroupsPriviligedMembers,\n    DomainGroupsPriviligedMembersRecursive,\n\n    // Domain Information - User Data\n    DomainUsersFullList, // Contains all data\n    DomainUsers,\n    DomainUsersCount,\n    DomainUsersAll,\n    DomainUsersSystemAccounts,\n    DomainUsersNeverExpiring,\n    DomainUsersNeverExpiringInclDisabled,\n    DomainUsersExpiredInclDisabled,\n    DomainUsersExpiredExclDisabled,\n    DomainAdministrators,\n    DomainAdministratorsRecursive,\n    DomainEnterpriseAdministrators,\n    DomainEnterpriseAdministratorsRecursive,\n\n    // Domain Information - Computer Data\n    DomainComputersFullList, // Contains all data\n    DomainComputersAll,\n    DomainComputersAllCount,\n    DomainComputers,\n    DomainComputersCount,\n    DomainServers,\n    DomainServersCount,\n    DomainComputersUnknown,\n    DomainComputersUnknownCount,\n\n    // This requires DSInstall PowerShell Module\n    DomainPasswordDataUsers, // Gathers users data and their passwords\n    DomainPasswordDataPasswords, // Compares Users Password with File\n    DomainPasswordDataPasswordsHashes, // Compares Users Password with File HASH\n    DomainPasswordClearTextPassword,\n    DomainPasswordLMHash,\n    DomainPasswordEmptyPassword,\n    DomainPasswordWeakPassword,\n    DomainPasswordDefaultComputerPassword,\n    DomainPasswordPasswordNotRequired,\n    DomainPasswordPasswordNeverExpires,\n    DomainPasswordAESKeysMissing,\n    DomainPasswordPreAuthNotRequired,\n    DomainPasswordDESEncryptionOnly,\n    DomainPasswordDelegatableAdmins,\n    DomainPasswordDuplicatePasswordGroups,\n    DomainPasswordHashesWeakPassword,\n    DomainPasswordStats,\n}\n```\n\nMore suggestions are welcome.\n\n### Microsoft Exchange\n\n- [ ] Currently not defined. Feel free to make feature requests\n\n### Microsoft Office 365\n\n- [ ] Currently not defined. Feel free to make feature requests\n\n### Windows Server doc\n\n- [ ] Currently not defined. Feel free to make feature requests\n\n### Windows Workstation doc\n\n- [ ] Currently not defined. Feel free to make feature requests\n\n### Statistics\n\n## Known Issues\n\n- [ ] [PSWinDocumentation #12](https://github.com/EvotecIT/PSWinDocumentation/issues/12) If you want to build documentation on your own template you're free to do so, however, you should use **Data\\EmptyDocument.docx** as your starting template. This is because of an issue with **PSWriteWord** (more specifically with DLL it uses) where Heading styles are not available when using the template created directly in Microsoft Word. The issue was reported [PSWriteWord #16](https://github.com/EvotecIT/PSWriteWord/issues/16) but it's a long time till it will be fixed. Until then simply use **Data\\EmptyDocument.docx** and then add your logos, text, whatever you feel like you need in a template.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEvotecIT%2FPSWinDocumentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEvotecIT%2FPSWinDocumentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEvotecIT%2FPSWinDocumentation/lists"}