This PowerShell module gives information about the following things on the specified machine:
| Category | Subcategory | Useful for NB | Useful for PC |
|---|---|---|---|
| Bios | S/N | Yes | No |
| Type | Yes | Yes | |
| Version | Yes | Yes | |
| BitLocker | Status | Yes | Yes |
| CPU | C/LC | Yes | Yes |
| Manufacturer | Yes | Yes | |
| Model | Yes | Yes | |
| Socket | No | Yes | |
| Installed | Name | Yes | Yes |
| Version | Yes | Yes | |
| Monitor(s) | Manufacturer | Yes | Yes |
| Name | Yes | Yes | |
| PCID | Yes | Yes | |
| S/N | Yes | Yes | |
| YoM | Yes | Yes | |
| RAM | Available | Yes | Yes |
| Manufacturer | Yes | No | |
| P/N | Yes | Yes | |
| S/N | Yes | No | |
| Storage(C:) | Capacity | Yes | Yes |
| Free | Yes | Yes | |
| System | Model | Yes | No |
| Name | Yes | Yes | |
| User | Yes | Yes | |
| Install(approx) | Yes | Yes | |
| Windows | Architecture | Yes | Yes |
| Build | Yes | Yes | |
| License status | Yes | Yes | |
| Product name | Yes | Yes | |
| Version | Yes | Yes |
WIP
Local:
Get-PoshSYSI [-PoshSYSIRunMode Local] [[-PoshSYSIMode] <string>] [[-Report] <bool>] [[-ReportPath] <string>] [<CommonParameters>]Remote:
Get-PoshSYSI -ComputerName <string[]> [-PoshSYSIRunMode Remote] [[-PoshSYSIMode] <string>] [[-Report] <bool>] [[-ReportPath] <string>] [<CommonParameters>]Minimal: System, Bios, Processor, Memory
Normal: + BitLocker (C:), Storage (C:), Monitor(s), Windows
Full: + Programs (x64 + x86)
Local without mode:
Get-PoshSYSI -PoshSYSIRunMode LocalLocal with mode:
Get-PoshSYSI -PoshSYSIMode {Minimal | Normal | Full} -PoshSYSIRunMode LocalRemote without mode:
Get-PoshSYSI -ComputerName EXAMPLE -PoshSYSIRunMode Remote
Get-PoshSYSI -ComputerName EXAMPLE1,EXAMPLE2 -PoshSYSIRunMode RemoteRemote with mode:
Get-PoshSYSI -ComputerName EXAMPLE -PoshSYSIMode {Minimal | Normal | Full} -PoshSYSIRunMode Remote
Get-PoshSYSI -ComputerName EXAMPLE1,EXAMPLE2 -PoshSYSIMode {Minimal | Normal | Full} -PoshSYSIRunMode RemoteA report can be generated using the -Report switch.
Default output folder path: C:\Temp\PoshSYSI\
You can specify a custom path using the -ReportPath parameter.
#1 System info: wrong user#2 Wait for variables(Fixed in 0.3.1.0 with improved error handling, proper variable initialization, and more robust CIM session management)#3 Remote: Installed programs(Addressed in 0.3.1.0 by implementing remote retrieval)#4 Change WMI to CIM
- CLI version
- More info
- Refactor code into a nice PS module 👀
- Run on multiple computer (Tested on a huge AD)
- Modes (
Full,Normal,Minimal) - Report
(maybe.csvand/or.xlsxand/or.html) - Extend storage info
- BitLocker info
- Fine-tune some output to make them easier to read
- GUI version
- Multilingual interface
- Implemented retrieval of installed programs from remote computers in 'Full' mode using
Invoke-Commandwith CIM sessions. - Introduced a standardized error handling mechanism (
New-PoshSYSIErrorRecord) for more consistent and detailed error reporting. - Ensured proper re-initialization of data structures for each local run and for every remote computer processed, preventing data carry-over.
- Added automatic normalization for
ReportPathto ensure it ends with a backslash if it's a directory. - Refined remote data fetching for OS installation date,
Get-ComputerInfo, BitLocker status, and Windows License status using targetedInvoke-Commandcalls. - Improved robustness of data collection with more granular try-catch blocks for different data categories (Minimal, Normal).
- Added optional
ReportPathparameter for custom report output directory. - Improved data collection performance using generic lists for Monitors and InstalledPrograms.
- Refactored
Invoke-SYSIModelogic for clarity and efficiency. - Enhanced remote connection handling using CIM sessions for most operations, improving reliability and performance.
- Implemented more robust and detailed error handling with a dedicated helper function.
- Updated comment-based help and inline comments for clarity and accuracy.
- Known issue: In 'Full' mode for remote computers, installed programs are currently retrieved from the machine running
Get-PoshSYSI, not the remote target.
For older versions, please refer to the commit history or release tags.
PoshSYSI is licensed under the MIT License.