HundredOneLines-PS.psm1

<##
#
#
# MODULE OF:
#
#
# ..One-Hundred-and-One one-liners of powershell..
#
# Author: Chris D.
#
# Usage: From the powershell cmdlet run the command:
# Import-Module .\Hundred-OneLines.psm1
# ..wait for a while to load.
#
# After loading, type each variable exported in the command shell to load the relevant data
#
# Example: PS C:> $diskinfo
#
# Note: Most of the exported cmds below
# require admin priviledges (RUN THIS FILE AS ADMIN.)
#
#
#
#
##>

function Extract-MetadataCmd {
[CmdletBinding()]
param($commandName,
[Parameter(Mandatory=$true,Position=1)]
$outputFile =$(Throw "Please define the output path for the proxy function body!")
) 
$proxyfuncbody = [Management.Automation.ProxyCommand]::Create((New-Object Management.Automation.CommandMetaData(Get-Command $($commandName))))
Set-Content -Path $outputFile -Value $proxyfuncbody
}

#Retrieve VSS for current disk
$vssout = Get-CimInstance -ClassName Win32_shadowCopy | Select { $_.InstallDate,$_.ID }
#Retrieve CPU architecture
$is64bit = (Get-WmiObject -Class Win32_ComputerSystem).SystemType -match "(x64)"
#Retrieve bios info, verify virtualization VT-d on BIOS
$biosout =  Get-WmiObject -ComputerName $env:COMPUTERNAME -Class Win32_BIOS
$vtdbiosOK = Get-WmiObject -Class Win32_Processor |  Select VirtualizationFirmwareEnabled
#Verify remote desktop enabled/disabled
#Remote desktop checker-regvals
$isRDPoff = $((Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server').fDenyTSConnections -eq 1)
$isRDPon = $((Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp').UserAuthentication -eq 1)
###$isRDPoff = $((Get-CimInstance Win32_TSGeneralSetting -Namespace \root\cimv2\TerminalServices).AllowTSConnections -eq 1)
#General OS info
$osout = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $env:COMPUTERNAME | Select Caption, BuildNumber, Description, ServicePackMajorVersion, ServicePackMinorVersion
#General User account info (local accounts)
$accout = Get-WmiObject -Class Win32_UserAccount -Filter  "LocalAccount='True'"
$userlogon = Get-WmiObject -Class Win32_LoggedOnUser -ComputerName $env:COMPUTERNAME | Select {$_}
#usb driver and other PC hardware information
$usbdrives = Get-WmiObject -Class Win32_PnPEntity | Where {$_.DeviceID -like "*USB*" } | Select DeviceID, ErrorDescription, Status
$physMedia = Get-WmiObject -Class Win32_PhysicalMedia | Select Manufacturer, Tag, Status, Removable, WriteProtectOn
#network adapter information
$adaptinfo = Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Select IPAddress, MacAddress, IPSubnet
#Verify that network address rand. is enabled
$adaptrndOn = $((Get-ItemProperty -Path 'HKLM:\Software\Microsoft\WlanSvc\Interfaces\{2CA63505-D7C7-40CB-A511-02DC9A38F2DD}').RandomMacState[0].toString() -eq 1)
#disk/partition information
$diskinfo = Get-CimInstance -ClassName Win32_LogicalDisk | Select DeviceID, FileSystem, FreeSpace
$partinfo = Get-CimInstance -ClassName Win32_LogicalDisk | Select VolumeName, VolumeSerialNumber, Status, StatusInfo
#Get eventlog files avail. and statuses
$eventinfo = Get-WmiObject -Class Win32_NTEventlogFile | Select -Unique CreationDate, CSName, Description, LogFileName, Readable, Writeable
#Currently logged on user info
$currprofileinfo = Get-CimInstance -ClassName Win32_NetworkLoginProfile -Namespace "root\cimv2" | Select {$_}
$profilesconn = Get-WmiObject -Class Win32_NetworkLoginProfile | Select Name, AccountExpires, AuthorizationFlags, HomeDirectory, LastLogon, LastLogoff
#Windows features, programs not installed/disabled
$featuresDis = Get-WindowsOptionalFeature -Online | Select $_.FeatureName | Where { $_.State -eq "Disabled" }  | Format-Table -AutoSize
$IISExists = (Test-Path $env:SystemDrive\inetpub\wwwroot) -and ((Get-ChildItem -Path "$env:windir\system32\inetsrv\*\*.dll").Length -gt 0) -and (Test-Path $env:windir\System32\inetsrv)
##Check by reg. val for installed IIS. This does not run if not installed.
#$IISExistsReg = (Get-ItemProperty HKLM:\Software\Microsoft\INetStp -Name "PathWWWRoot" -eq "$env:SystemDrive\inetpub\wwwroot") -and (Get-ItemProperty "HKLM:\Software\Microsoft\INetStp" -Name "InstallPath" -eq "$env:windir\system32\inetsrv")
$IISRunsOK = (Get-WmiObject -Class Win32_Service -ComputerName $env:COMPUTERNAME -Filter "Name='IISADMIN'").State -eq "Running"
#Checks for default .net framework directories and other installation files (sql srv '14 and for VS (X64) '15)
$dotNExists = (Test-Path $env:windir\Microsoft.NET\Framework\) -or (Test-Path $env:windir\Microsoft.NET\Framework64\) -and ((Get-ChildItem -Path $env:windir\Microsoft.NET\Framework64\ -Recurse).Length -ge 1070) -or ((Get-ChildItem -Path $env:windir\Microsoft.NET\Framework64\ -Recurse).Length -ge 1100) -and ((Get-ChildItem -Path $env:windir\Microsoft.NET\assembly\ | Where {$_.Name -like "GAC*" } ).Length -eq 3)
$SqlInstalledOK = (Test-Path "$env:ProgramFiles\Microsoft SQL Server\MSSQL12.SQLEXPRESS") -or (Test-Path "${env:ProgramFiles(x86)}\Microsoft SQL Server\MSSQL12.SQLEXPRESS") -and ( ((Get-ChildItem "$env:ProgramFiles\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\*.dll").Length -gt 10) -or ((Get-ChildItem "${env:ProgramFiles(x86)}\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\*.dll").Length -gt 10) ) -and ((Get-ItemProperty -Path "HKLM:\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL").SQLEXPRESS -like "*SQLEXPRESS*")
$SqlAgentRunsOK = (Get-Service -Name 'SQLAgent$SQLEXPRESS').Status -eq "Stopped"
$SqlExpressRunsOK = (Get-Service -Name 'MSSQL$SQLEXPRESS').Status -eq "Stopped"
$VSInstalledOK = (Test-Path "$env:ProgramFiles\Microsoft Visual Studio 14.0\Common7") -or (Test-Path "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7") -and ($env:VS140COMNTOOLS -ne "" -or  $env:VS120COMNTOOLS -ne "" -or $env:VS110COMNTOOLS -ne "") -and (Test-Path $env:VS140COMNTOOLS\1033) -and ((Get-ChildItem -Path $env:VS140COMNTOOLS -Recurse).Length -gt 10) -and ( ((Get-ChildItem -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\InstalledProducts").Name -like "*Microsoft*").Length -ge 5 ) -and ( ((Get-ChildItem -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\InstalledProducts").Name -like "*ASP*").Length -ge 2 ) -and  ((Get-ItemPropertyValue -Path "HKLM:\Software\WOW6432Node\Microsoft\VisualStudio\14.0" -Name  "InstallDir").Length -ge 1)
$VCPPRedistOK = ((Test-Path -PathType Leaf $env:windir\system32\msvcr110.dll) -or (Test-Path -PathType Leaf $env:windir\system32\msvcr100.dll) -or (Test-Path -PathType Leaf $env:windir\system32\msvcr120.dll)) -and ((Get-ItemPropertyValue -Path "HKLM:\Software\Classes\Installer\Products\1926E8D15D0BCE53481466615F760A7F" -Name "Version" -ErrorAction SilentlyContinue) -like "1678*") -or ((Get-ItemPropertyValue -Path "HKLM:\Software\Classes\Installer\Dependencies\{ca67548a-5ebe-413a-b50c-4b9ceb6d66c6}" -Name "Version" -ErrorAction SilentlyContinue) -like "11.0*") -or ((Get-ItemPropertyValue -Path "HKLM:\Software\Classes\Installer\Dependencies\{050d4fc8-5d48-4b8f-8972-47c82c46020f}" -Name "Version" -ErrorAction SilentlyContinue) -like "12.0*") -or ((Get-ItemPropertyValue -Path "HKLM:\Software\Classes\Installer\Dependencies\{d992c12e-cab2-426f-bde3-fb8c53950b0d}" -Name "Version" -ErrorAction SilentlyContinue) -like "14.0*")
#This section checks for Git,Mercurial vcontrol installations.
$VerCInstalledOK = ((Test-Path -PathType Leaf $env:ProgramFiles\TortoiseHg\*.exe) -or (Test-Path -PathType Leaf $env:ProgramFiles\Git\bin\*.exe) -or (Test-Path -PathType Leaf ${env:ProgramFiles(x86)}\Git\bin\*.exe) -or (Test-Path $env:ProgramData\Git\config) -or (Test-Path $env:ProgramFiles\TortoiseHg) -or (Test-Path ${env:ProgramFiles(x86)}\TortoiseHg)) -and (Test-Path -PathType Leaf $env:USERPROFILE\.gitconfig) -and (Test-Path -PathType Leaf $env:ProgramFiles\Git\mingw64\etc\gitconfig) -and (($env:Path -match 'git') -or ($env:Path -match 'Hg') -or ($env:Path -match 'Tortoise')) -and (Test-Path -PathType Leaf $env:USERPROFILE\mercurial.ini)
$FoldersUnderGitVControl = Get-ChildItem -Path $env:SystemDrive -Recurse | Where {($_ -like "*.gitattributes") -or ($_ -like "*.gitignore")}
$FoldersUnderMercurialVControl = Get-ChildItem $env:SystemDrive\*\*\*\.hg -Recurse | Where {($_ -match 'requires') -or ($_ -match 'branch') -or ($_ -match 'hgrc') -or ($_ -match '00changelog')}
$VStudioVersionsInstalled = (Get-Item "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\").GetSubKeyNames()
$VStudioAppIDsInstalled = Get-ChildItem -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\" | Select {$_.GetValue("SecurityAppID")}
$VStudioRelevantInstalls = Get-WmiObject -Class Win32_Product -Computer . | Where {$_.Name -like "*Visual Studio*" } | Format-Table -AutoSize
#Network firewalls, vpns etc..
$allNetInfo = Get-WmiObject Win32_NetworkAdapterConfiguration -ErrorAction 'Stop' | Select-Object -Property @{L='DeviceID'; E={$_.Index}}, DNSDomain, PhysicalAdapter, Manufacturer, Description, IPEnabled | Format-Table -ShowError
$isLocalActive = Test-Connection -ComputerName $env:COMPUTERNAME -Quiet
$isFirewallactive = ((netsh advfirewall show domain state)[3] -match "ON")
$ipAddressExtn = (Invoke-WebRequest -Uri "http://checkip.dyndns.com").Content -replace "[a-z]|[A-Z]","" -replace "(<>)|(</>)|(:)",""
#Mobile Dev. Management information
$webAppinfo = Get-CimInstance -Namespace "Root\cimv2\mdm" -ClassName "MDM_WebApplication"
$wifiProfileinfo = (netsh wlan show all)[141..156]
$wifiProfilesByName = (netsh wlan show all)[159..287]
#HDD and other drive relevant information..
$volIDinfo = Get-WmiObject Win32_Volume -filter "drivetype=3" | Select DeviceID
$hddinfo = Get-WmiObject Win32_DiskDrive | Select DeviceID,Signature,Model
$partitioninfo = Get-WmiObject -Class Win32_DiskPartition | Select Index, Availability, Access, BlockSize, HiddenSectors, Size | Format-Table -AutoSize
$pshelldrvinfo = Get-PSDrive
#Ports Information, connections etc..
$sslportsopen = netstat -na  | findstr :443 | Where {$_ -match "ESTABLISHED" -or $_ -match "LISTENING"}
$winrmportsopen = netstat -na | findstr :5985 | Where {$_ -match "ESTABLISHED" -or $_ -match "LISTENING"}
#Sql relevant information SQL SERVER 2014 (NOTE: The SQL service must be running locally with WinRM Svc enabled to use Wmi classes and SQLPS module installed/enabled for the query commands)
#Default database used here is 'master', change accordingly.
$sqlInstances = (Get-CimInstance -ComputerName $env:COMPUTERNAME -Namespace "root\Microsoft\SqlServer\ComputerManagement12" -ClassName ServerSettings).InstanceName
$ChecksqlCmdOK = Invoke-Sqlcmd -Query "Print 'Query OK'" -ServerInstance ".\$sqlInstances" -Verbose
$sqlDatabases = Invoke-Sqlcmd -Query "select @@servername as InstanceName,name as DatabaseName from sys.databases" -ServerInstance ".\$sqlInstances"
$sqlTables = Invoke-Sqlcmd -Query "select name from sys.tables" -ServerInstance ".\$sqlInstances" -Database "master"
$sqlSProcedures = Invoke-Sqlcmd -Query "Select * from sys.procedures" -ServerInstance ".\$sqlInstances" -Database "master" | Format-Table -AutoSize
$sqlBaseParams = Invoke-Sqlcmd -Query "Select object_id, name, parameter_id, system_type_id, user_type_id, max_length, precision, is_nullable from sys.all_parameters" -ServerInstance ".\$sqlInstances" -Database "master" | Format-Table -AutoSize
$sqlSrvVersion = Invoke-Sqlcmd -Query "select @@version" -ServerInstance ".\$sqlInstances" -QueryTimeout 3
$sqlPKeys = Invoke-Sqlcmd -Query "select * from sys.key_constraints" -ServerInstance ".\$sqlInstances" -Database "master"
$sqlFKeys = Invoke-Sqlcmd -Query "select * from sys.foreign_key_columns" -ServerInstance ".\$sqlInstances" -Database "master"
#ASP .NET/core information..
$alldotnetversions = Get-WmiObject Win32_Product | Where {$_.Name -like "*.NET*"} | Format-Table -AutoSize
$allaspversions =  Get-WmiObject Win32_Product | Where {$_.Name -match "ASP\.NET"}
$aspcoreversioninfo = Get-ChildItem -Path "HKLM:\Software\WoW6432Node\Microsoft\Updates\.NET Core" -ErrorAction SilentlyContinue
$aspcoreinstalledOK = ((Get-Item -Path "HKLM:\Software\WoW6432Node\Microsoft\Updates\.NET Core" -ErrorAction Stop).GetSubKeyNames().Count -ge 1) -and ((Get-ChildItem -Path "HKLM:\Software\WoW6432Node\Microsoft\Updates\.NET Core" -ErrorAction Stop)[0].GetValue("ThisVersionInstalled") -eq "Y")
#For these stats you need to enable WinRM service
$aspperfstats1 = Get-CimInstance -Class Win32_PerfFormattedData_ASPNET_ASPNET -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2"
$aspperfstats2 = Get-CimInstance -Class Win32_PerfFormattedData_aspnetstate_ASPNETStateService -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2"
$aspperfstats3 = Get-CimInstance -Class Win32_PerfRawData_aspnetstate_ASPNETStateService -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2"
$aspperfstats4 = Get-CimInstance -Class Win32_PerfRawData_ASPNET_ASPNETApplications -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2"
$allaspnetwmiproviders = gwmi  -List "*ASPNET*" | Format-Table Name -AutoSize
#Powershell information..
$psversionfullstring = "Current PS Version is {0}.{1}.{2}.{3} - Edition Mode: {4}" -f $PSVersionTable.PSVersion.Major,$PSVersionTable.PSVersion.Minor,$PSVersionTable.PSVersion.Build,$PSVersionTable.PSVersion.Revision,$PSVersionTable.PSEdition
$pshoststring = "Current PS Host is {0}, of Instance {1} LANG: {2}" -f $Host.Version, $Host.InstanceId, $Host.CurrentCulture
$pslangcultureOK = ($Host.CurrentCulture -eq $Host.CurrentUICulture)
$psrunspaceOK = $Host.IsRunspacePushed
$psdbgOK = $Host.DebuggerEnabled
$psscriptblocklogOK = (Test-Path -Path "HKLM:\SOFTWARE\WoW6432Node\Policies\Microsoft\PowerShell\ScriptBlockLogging") -or (Test-Path -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging") -or (Test-Path -Path "HKCU:\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging")
#HDD limit info..
$freespacepercent = gwmi Win32_LogicalDisk -Filter "DeviceID='C:'" | Select Name, FileSystem,FreeSpace,BlockSize,Size | % {$_.BlockSize=(($_.FreeSpace)/($_.Size))*100;$_.FreeSpace=($_.FreeSpace/1GB);$_.Size=($_.Size/1GB);$_}| Format-Table Name, @{n='FS';e={$_.FileSystem}},@{n='Free, Gb';e={'{0:N2}'-f $_.FreeSpace}}, @{n='Free,%';e={'{0:N2}'-f $_.BlockSize}} -AutoSize
$diskutillessthan30percent = (Get-WmiObject -Class Win32_LogicalDisk -ComputerName $env:COMPUTERNAME | Select { ( ([Math]::Round(($_.Size)/1GB) - [Math]::Round(($_.FreeSpace)/1GB)) /100 ) -ge 30.0})
$isquotaOff = (Get-CimInstance -ClassName Win32_LogicalDisk -ComputerName $env:COMPUTERNAME -Namespace "root\cimv2").QuotasDisabled
$isquotaSupported = (Get-CimInstance -ClassName Win32_LogicalDisk -ComputerName $env:COMPUTERNAME -Namespace "root\cimv2").SupportsDiskQuotas
$getmappeddiskinfo = Get-WmiObject -Class Win32_LogicalDisk -ComputerName $env:COMPUTERNAME | Where { $_.DriveType -eq 4 }
#Applications and settings..
$allMSInstallations = Get-ItemProperty -Path "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" | Select DisplayName, Publisher, CacheLocation | Where {$_.Publisher -like "Microsoft*"} | Format-Table -AutoSize
$allGoogleInstallations = Get-ItemProperty -Path "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" | Select DisplayName, Publisher, CacheLocation | Where {$_.Publisher -like "Google*" } | Format-Table -AutoSize
$allAdobeInstallations = Get-ItemProperty -Path "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" | Select DisplayName, Publisher, CacheLocation | Where {$_.Publisher -like "Adobe*" } | Format-Table -AutoSize
$allMetroAppInstalls = Get-AppxPackage | Format-Table -AutoSize
$allprinters = Get-CimInstance -ClassName Win32_PrinterConfiguration -ComputerName $env:COMPUTERNAME | Select Name, SettingID, Duplex, PaperSize
$allsoundcards = Get-CimInstance -ClassName Win32_SoundDevice -ComputerName $env:COMPUTERNAME | Select ProductName, Status, StatusInfo, SystemName
$allmonitors = Get-CimInstance -ClassName WIn32_DesktopMonitor -ComputerName $env:COMPUTERNAME
$allkeyboardlayoutfriendlynames = (Get-ChildItem -Path "HKLM:\SYSTEM\ControlSet001\Control\Keyboard Layouts") | %{ $_.GetValue("Layout Text") }
$allkeyboardlayouthexcodes = (Get-ChildItem -Path "HKLM:\SYSTEM\ControlSet001\Control\Keyboard Layouts").Name -replace "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\Keyboard Layouts\\",""
$allInstalledkeyboardlayouts = Get-ItemProperty -Path "HKCU:\Keyboard Layout\Preload"
$isdefaultlayoutENUS = ((Get-ItemProperty -Path "HKCU:\Keyboard Layout\Preload").1 -eq "00000409")
$isdefaultlayoutGR = ((Get-ItemProperty -Path "HKCU:\Keyboard Layout\Preload").1 -eq "00000408")
$isdefaultlayoutFR = ((Get-ItemProperty -Path "HKCU:\Keyboard Layout\Preload").1 -eq "0000040c")
$isdefaultInstalledlayoutENUS = ((Get-WmiObject -Class Win32_Keyboard -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2").Layout -eq "00000409")
#Other Hardware info..
$cpuinfo = Get-CimInstance -ClassName Win32_Processor -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2"
$moboinfo = Get-CimInstance -ClassName Win32_MotherBoardDevice -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2"
$memoryinfo = Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2"
$isRamSamsung = ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2").PartNumber -like "M*B*-*") -or ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2").PartNumber -like "M*T*-*")
$isRamHynix = ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2").PartNumber -like "HM*-*") -or  ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2").PartNumber -like "HY*-*")
$isRamKingston = ( ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2").PartNumber -like "KHX*/*") -or ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2").PartNumber -like "KVR*/*") )
$ramCount = Get-CimInstance -Class Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME -Namespace "root\CIMV2" | Select Name | Measure-Object -Property Name -Sum -ErrorAction SilentlyContinue | Select Count -ErrorAction SilentlyContinue
$islaptop = ( ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME).ConfiguredVoltage /1000 -ge 1.2) -or ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME).ConfiguredVoltage /1000 -le 1.6) ) -or ((Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $env:COMPUTERNAME).ConfiguredVoltage /1000 -ne 2.6) -and ( (Get-CimInstance -ClassName Win32_Battery -ComputerName $env:COMPUTERNAME).DesignVoltage /1000 -le 14)
#OS Recovery Information..
$recovPartitioninfo = (Get-CimInstance -ClassName Win32_OSRecoveryConfiguration -ComputerName $env:COMPUTERNAME).Name | Select {$_ -replace "\\",""} 
$autoRebootEnabled = (Get-CimInstance -ClassName Win32_OSRecoveryConfiguration -ComputerName $env:COMPUTERNAME).AutoReboot
#Additional OS File System sizing Information..
$programfilesdirsize = "{0:N3} Gigabytes" -f ((Get-ChildItem -Path $env:ProgramFiles -Recurse -Filter * | Measure-Object -Sum -Property Length).Sum / 1GB)
$downloadsdirsize = "{0:N3} Gigabytes" -f ((Get-ChildItem -Path "$env:USERPROFILE\Downloads" -Recurse -Filter * | Measure-Object -Sum -Property Length).Sum / 1GB)

##
#
#Variables and Functions exported here...
#
##
Export-ModuleMember -Function 'Extract-MetadataCmd'
Export-ModuleMember -Variable 'vssout'
Export-ModuleMember -Variable 'is64bit'
Export-ModuleMember -Variable 'biosout'
Export-ModuleMember -Variable 'vtdbiosOK'
Export-ModuleMember -Variable 'isRDPoff'
Export-ModuleMember -Variable 'isRDPon'
Export-ModuleMember -Variable 'osout'
Export-ModuleMember -Variable 'accout'
Export-ModuleMember -Variable 'userlogon'
Export-ModuleMember -Variable 'usbdrives'
Export-ModuleMember -Variable 'physMedia'
Export-ModuleMember -Variable 'adaptinfo'
Export-ModuleMember -Variable 'adaptrndOn'
Export-ModuleMember -Variable 'diskinfo'
Export-ModuleMember -Variable 'partinfo'
Export-ModuleMember -Variable 'eventinfo'
Export-ModuleMember -Variable 'currprofileinfo'
Export-ModuleMember -Variable 'profilesconn'
Export-ModuleMember -Variable 'featuresDis'
Export-ModuleMember -Variable 'IISExists'
Export-ModuleMember -Variable 'IISRunsOK'
Export-ModuleMember -Variable 'dotNExists'
Export-ModuleMember -Variable 'SqlInstalledOK'
Export-ModuleMember -Variable 'SqlAgentRunsOK'
Export-ModuleMember -Variable 'SqlExpressRunsOK'
Export-ModuleMember -Variable 'VSInstalledOK'
Export-ModuleMember -Variable 'VCPPRedistOK'
Export-ModuleMember -Variable 'VerCInstalledOK'
Export-ModuleMember -Variable 'FoldersUnderGitVControl'
Export-ModuleMember -Variable 'FoldersUnderMercurialVControl'
Export-ModuleMember -Variable 'VStudioVersionsInstalled'
Export-ModuleMember -Variable 'VStudioAppIDsInstalled'
Export-ModuleMember -Variable 'VStudioRelevantInstalls'
Export-ModuleMember -Variable 'allNetInfo'
Export-ModuleMember -Variable 'isLocalActive' 
Export-ModuleMember -Variable 'isFirewallactive'
Export-ModuleMember -Variable 'ipAddressExtn'
Export-ModuleMember -Variable 'webAppinfo'
Export-ModuleMember -Variable 'wifiProfileinfo'
Export-ModuleMember -Variable 'wifiProfilesByName'
Export-ModuleMember -Variable 'volIDinfo'
Export-ModuleMember -Variable 'hddinfo'
Export-ModuleMember -Variable 'partitioninfo'
Export-ModuleMember -Variable 'pshelldrvinfo'
Export-ModuleMember -Variable 'sslportsopen'
Export-ModuleMember -Variable 'winrmportsopen'
Export-ModuleMember -Variable 'sqlInstances'
Export-ModuleMember -Variable 'ChecksqlCmdOK'
Export-ModuleMember -Variable 'sqlDatabases'
Export-ModuleMember -Variable 'sqlTables'
Export-ModuleMember -Variable 'sqlSProcedures'
Export-ModuleMember -Variable 'sqlBaseParams'
Export-ModuleMember -Variable 'sqlSrvVersion'
Export-ModuleMember -Variable 'sqlPKeys'
Export-ModuleMember -Variable 'sqlFKeys'
Export-ModuleMember -Variable 'alldotnetversions'
Export-ModuleMember -Variable 'allaspversions'
Export-ModuleMember -Variable 'aspcoreversioninfo'
Export-ModuleMember -Variable 'aspcoreinstalledOK'
Export-ModuleMember -Variable 'aspperfstats1'
Export-ModuleMember -Variable 'aspperfstats2'
Export-ModuleMember -Variable 'aspperfstats3'
Export-ModuleMember -Variable 'aspperfstats4'
Export-ModuleMember -Variable 'allaspnetwmiproviders'
Export-ModuleMember -Variable 'psversionfullstring'
Export-ModuleMember -Variable 'pshoststring'
Export-ModuleMember -Variable 'pslangcultureOK'
Export-ModuleMember -Variable 'psrunspaceOK'
Export-ModuleMember -Variable 'psdbgOK'
Export-ModuleMember -Variable 'psscriptblocklogOK'
Export-ModuleMember -Variable 'freespacepercent'
Export-ModuleMember -Variable 'diskutillessthan30percent'
Export-ModuleMember -Variable 'isquotaOff'
Export-ModuleMember -Variable 'isquotaSupported'
Export-ModuleMember -Variable 'getmappeddiskinfo'
Export-ModuleMember -Variable 'allMSInstallations'
Export-ModuleMember -Variable 'allGoogleInstallations'
Export-ModuleMember -Variable 'allAdobeInstallations'
Export-ModuleMember -Variable 'allMetroAppInstalls'
Export-ModuleMember -Variable 'allprinters'
Export-ModuleMember -Variable 'allsoundcards'
Export-ModuleMember -Variable 'allmonitors'
Export-ModuleMember -Variable 'allkeyboardlayoutfriendlynames'
Export-ModuleMember -Variable 'allInstalledkeyboardlayouts'
Export-ModuleMember -Variable 'allkeyboardlayouthexcodes'
Export-ModuleMember -Variable 'isdefaultlayoutENUS'
Export-ModuleMember -Variable 'isdefaultlayoutGR'
Export-ModuleMember -Variable 'isdefaultlayoutFR'
Export-ModuleMember -Variable 'isdefaultInstalledlayoutENUS'
Export-ModuleMember -Variable 'cpuinfo'
Export-ModuleMember -Variable 'moboinfo'
Export-ModuleMember -Variable 'memoryinfo'
Export-ModuleMember -Variable 'isRamSamsung'
Export-ModuleMember -Variable 'isRamHynix'
Export-ModuleMember -Variable 'ramCount'
Export-ModuleMember -Variable 'isRamKingston'
Export-ModuleMember -Variable 'islaptop'
Export-ModuleMember -Variable 'recovPartitioninfo'
Export-ModuleMember -Variable 'autoRebootEnabled'
Export-ModuleMember -Variable 'programfilesdirsize'
Export-ModuleMember -Variable 'downloadsdirsize'