https://github.com/ascentis/parse-hyperv-inventory
Small application to parse hyper-v reports inventory and produce an Excel compatible csv file
https://github.com/ascentis/parse-hyperv-inventory
hyperv reporting
Last synced: 9 months ago
JSON representation
Small application to parse hyper-v reports inventory and produce an Excel compatible csv file
- Host: GitHub
- URL: https://github.com/ascentis/parse-hyperv-inventory
- Owner: Ascentis
- License: mit
- Created: 2021-01-06T20:48:19.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-04-18T20:21:39.000Z (over 4 years ago)
- Last Synced: 2025-02-08T14:44:43.547Z (11 months ago)
- Topics: hyperv, reporting
- Language: HTML
- Homepage:
- Size: 297 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# parse-hyperv-inventory
Small application to parse hyper-v reports inventory and produce an Excel compatible csv file
This application takes as input a file with an inventory report produced by Get-HyperVInventory.ps1 PowerShell script and converts into an Excel compatible .csv file.
## Usage
ParseHyperVReport [options]
**Options:**
**--source** Specifies the filename of the hyperV report file
**--record-pattern** String specifying how a given text line should begin to be considered the marker
of a new record
**--attributes** An array of strings containing the list of attributes to extract from the report
file. Each entry can be a simple string matching the text before the colon (:) separating the value or a name=regex spec
ifying the name of the attribute and a regex specifying how to extra the value in from the right side of the colon marker. If using a regex it must contain at last one capturing group matching the value attempting to extract. The capturing group number 1 is the group used to extract the value (capturing group zero is the entire match)
**--version** Show version information
**-?, -h, --help** Show help and usage information
## Example input file contents
```
### Hyper-V Environment Inventory ###
## Report mode: VM Inventory, Cluster and Hosts ##
Created on: Wednesday, January 6, 2021 4:49:34 AM
Created by: domain\user
Local server: ServerName
Script folder: C:\tools
Script version: v2.4
### Virtual Machine information ###
## VMs in cluster DevCluster02 ##
Number of VMs in cluster: 138
# VM: CLOUDDC2 #
Clustered VM: True
Cluster group: CLOUDDC2
Cluster startup priority: 2000
Host: HostName
State: Running
Status: Operating normally
VM ID: 859b5aad-9b80-4ca2-a59c-8ad6ec0b5bbb
Generation: 2
Version: 9.0
Created on: 06/20/2019 22:47:23
Guest FQDN: CLOUDDC2.domain.com
Guest OS: Windows Server 2019 Standard
Integration Services version: 10.0.17763
Integration Services state:
Automatic stop action: Save
Automatic start action: Nothing
Automatic start delay: 0
Configuration path: C:\ClusterStorage\MGR-Volume\VMs\CLOUDDC2
Checkpoint path: C:\ClusterStorage\MGR-Volume\VMs\CLOUDDC2
Current checkpoint type: Production
Replication: not configured
VMconnect.exe access granted to: nobody
Checkpoints of CLOUDDC2
none
VM Security
Shielded VM: False
TPM Enabled: False
Key Storage Drive enabled: False
State and Migration encrypted: False
Virtual hardware
Number of CPUs: 4
Compatibility for older operating systems enabled: False
Compatibility for migration enabled: False
Host Resource Protection enabled: False
Nested virtualization enabled: False
RAM type: Static Memory
RAM: 8192 MB
...
```
## Usage example
```
ParseHyperVReport --source ..\..\..\Hyper-V-Inventory-20210106-045035.txt --record-pattern "# VM" --attributes "# VM=(.*) #" "State" "Number of CPUs" > hyperv-report.csv
```
This command produces the following output:
```
# VM=(.*) #,State,Number of CPUs
CLOUDDC2,Running,4
vm1,Off,8
vm2,Running,16
vm3,Off,8
usr-vm4,Off,4
usr-vm5,Off,4
usr-vm6,Running,8
usr-vm7,Running,8
...
```