51 lines
1.9 KiB
PowerShell
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
|
|
} |