Added sbom powershell script
This commit is contained in:
48
codegrab/sbom.ps1
Normal file
48
codegrab/sbom.ps1
Normal file
@@ -0,0 +1,48 @@
|
||||
# Get a list of all installed software from the Windows software library
|
||||
$installedSoftware = Get-Package
|
||||
|
||||
# Get a list of all installed Windows updates
|
||||
$installedUpdates = Get-HotFix
|
||||
|
||||
# Get a list of all Chocolatey packages
|
||||
$chocoPackages = choco list --localonly
|
||||
|
||||
# Create a variable to hold all of the information
|
||||
$sbom = @()
|
||||
|
||||
# Add the installed software to the SBOM
|
||||
$sbom += $installedSoftware
|
||||
|
||||
# Add the formatted updates to the SBOM
|
||||
$sbom += $installedUpdates
|
||||
|
||||
# Add the Chocolatey packages to the SBOM
|
||||
$sbom += $chocoPackages
|
||||
|
||||
# Get the folder path
|
||||
$folderPath = "C:\Forensic Program Files"
|
||||
|
||||
# Get all EXE files in the folder and its subfolders
|
||||
$exeFiles = Get-ChildItem $folderPath -Recurse -Filter "*.exe"
|
||||
|
||||
# Create a variable to hold the EXE file information
|
||||
$exeInfo = @()
|
||||
|
||||
# Loop through each EXE file
|
||||
foreach ($exeFile in $exeFiles) {
|
||||
# Get the file version information
|
||||
$fileVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($exeFile.FullName)
|
||||
|
||||
# Add the EXE file information to the array
|
||||
$exeInfo += New-Object PSObject -Property @{
|
||||
"Path" = $exeFile.FullName
|
||||
"Product Name" = $fileVersion.ProductName
|
||||
"Product Version" = $fileVersion.ProductVersion
|
||||
}
|
||||
}
|
||||
|
||||
# Add the EXE file information to the SBOM
|
||||
$sbom += $exeInfo
|
||||
|
||||
# Export the SBOM to a CSV file
|
||||
$sbom | Export-Csv C:\tmp\sbom.csv -NoTypeInformation
|
||||
Reference in New Issue
Block a user