Solution Fonction
function Convert-Octets
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true, Position=0)]
[long]$Octets,
[Parameter(Mandatory=$true, Position=1)]
[ValidateSet("KB","MB","GB")]
[string]$Unite
)
$resultat = switch ($Unite)
{
"KB" { [math]::Round($Octets / 1KB, 2) }
"MB" { [math]::Round($Octets / 1MB, 2) }
"GB" { [math]::Round($Octets / 1GB, 2) }
}
[PSCustomObject]@{
ValeurOriginale = $Octets
Unite = $Unite
Resultat = $resultat
}
}
Solution Script
param
(
[Parameter(Mandatory = $false)]
[switch]$JSON
)
Write-Verbose "Querying computer: $computer"
$OSInfo = Get-CimInstance -ComputerName $computer -Class win32_OperatingSystem
$DiskInfo = Get-Volume -DriveLetter C
$Output = [PSCustomObject]@{
ComputerName = $OSInfo.CSName
OSVersion = $OSInfo.Caption
BuildOS = $OSInfo.BuildNumber
RamMemory = $OSInfo.TotalVisibleMemorySize
SystemDriveFreeSpace = (Convert-Octets -Octets $DiskInfo.SizeRemaining -Unite GB).Resultat
}
if ($JSON)
{
$Output | ConvertTo-Json
}
else
{
$Output
}