ps/Modules/Alkami.DevOps.Inventory/Public/Get-PlatformInventory.ps1
2023-05-30 22:51:22 -07:00

51 lines
1.9 KiB
PowerShell

function Get-PlatformInventory {
<#
.SYNOPSIS
Get information about the Platform
.LINK
Get-MachineInventory
#>
[CmdletBinding()]
[OutputType([System.Collections.Hashtable])]
Param()
$logLead = (Get-LogLeadName);
$providerStopWatch = [System.Diagnostics.StopWatch]::StartNew()
Write-Host "$logLead : [$($providerStopWatch.Elapsed)] : Getting OS Details"
$platformInfo = Get-CIMInstance Win32_OperatingSystem -Namespace "root\CIMV2" -Property Caption, Version, OSArchitecture, Organization, SizeStoredInPagingFiles
Write-Host "$logLead : [$($providerStopWatch.Elapsed)] : OS Details Retrieved"
Write-Host "$logLead : [$($providerStopWatch.Elapsed)] : Getting System Details"
$systemInfo = Get-CIMInstance Win32_ComputerSystem -Namespace "root\CIMV2" -Property DNSHostName, Domain
Write-Host "$logLead : [$($providerStopWatch.Elapsed)] : System Details Retrieved"
$psVersionInfo = $PSVersionTable.PSVersion
$platformInfo = @{
GenerationTime = (Get-Date).DateTime;
OS = "Windows";
PlatformFamily = "Windows";
Platform = $platformInfo.Caption;
Version = $platformInfo.Version;
Architecture = $platformInfo.OSArchitecture;
Organization = $platformInfo.Organization;
PageFileSize = $platformInfo.SizeStoredInPagingFiles;
Hostname = $systemInfo.DNSHostName;
DotNetVersion = (Get-DotNetVersion).FriendlyVersion;
FQDN = (Get-FullyQualifiedServerName);
PowerShell = @{
Version = $psVersionInfo.ToString();
Major = $psVersionInfo.Major;
Minor = $psVersionInfo.Minor;
Build = $psVersionInfo.Build;
Revision = $psVersionInfo.Revision;
}
}
Write-Host "$logLead : [$($providerStopWatch.Elapsed)] : Provider Complete"
$providerStopWatch.Stop()
return $platformInfo
}