![]() Powershell $ProgramList = "*Dell SupportAssist*", "*Sophos Endpoint Agent*", "Node.js", "Teams Machine-Wide Installer" ) $ProgramPath64 = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" $ProgramPath32 = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" $Computers = Get-Content -Path "C:\Users\Yourusername\Downloads\Computers.txt" $CSVFile = "C:\Users\Yourusername\Downloads\InstalledProgram.csv" Foreach ( $Computer in $Computers ) No doubt there will be ways to build on this V1, to add on some of the extra things mentioned in the original post sich as colour coding, refreshing the script automatically etc. As mentioned, getting to this point serves enough of a purpose for me to continue with the rest of my processes. This code when executed bring up an Out-GridView window which shows the results required. import-csv "C:\tools\final-software.csv" | Out-GridView -Title "SOFTWARE INSTALLATION CHECKLIST" exit import-csv "C:\tools\checked-software.csv" |? "display name" -like * Teams *| export-csv "C:\tools\final-software.csv" import-csv "C:\tools\checked-software.csv" |? "display name" -like * Citrix *| export-csv -Append "C:\tools\final-software.csv" import-csv "C:\tools\checked-software.csv" |? "display name" -like * Sophos *| export-csv -Append "C:\tools\final-software.csv" import-csv "C:\tools\checked-software.csv" |? "display name" -like * TeamViewer *| export-csv -Append "C:\tools\final-software.csv" # Finally, call the 3rd (Final CSV) and Pipe to Out-GridView with required Window Title. Then append any further matching entries to the same Final CSV. Import-Csv -Path "C:\tools\installed-software.csv" | Select $Headers | Export-Csv -Path "C:\tools\checked-software.csv" -Force -NoTypeInformation Start-Sleep -s 5 # Query the Intermediate CSV, and export result to a 3rd (Final) CSV. $Headers = "Display Name" "Display Version" "Install Date" "Installed For" # Add all other desired headers here (You can only choose from columns available in the Initial CSV) ) # Import Initial CSV, select the relevant headers as defined in the previous block, and export those contents to an Intermediate CSV. Start-Sleep -s 5 # Header Function? to choose which columns to extract from "Initial CSV". #Note I have set a short time in my environment as the script will run in the early stages of a fresh build. exe / scomma "c:\tools\installed-software.csv" # Sleep for 5 seconds to allow the previous step to occur. (Initial CSV) & C : \ tools \ UninstallView. Powershell # Run the UninstallView executable with command to generate list of ALL installed Software. If you want Deploy it's another $500 per admin per year. As far as the costs go, PDQ inventory is $500 per admin per year. I know PDQ relies heavily on Powershell so maybe someone with more experience in PS will chime in on how it creates collections. My hope in posting on these forums was that some PowerShell gurus could nudge me in the right direction and help me to achieve the desired outcome.ĭo you have any suggestions to progress this via the PS/Batch languages?I don't have an script. Also as great as PDQ seems to be, we really only need a very small subset of features from it, and the cost vs the need may prove difficult for me to justify to the powers that be. Unfortunately, it doesn't currently have a feature that shows its progress and notify on screen when all applicable tasks are complete. I'd like to try and achieve this via PS/Batch due to the fact that we are using ManageEngine Desktop Central Cloud as the Desktop Management Platform. quit and delete itself (and autorun at logon)Ĭurrently the best way I have found to get the data I need in the way I need is by using a small utility called Nirsoft UninstallView Opens a new window, with this command line: It could then be set to auto-rerun itself every x seconds/minutes to detect further installations that have occurred since last run. On the first run, the script executes and shows the current status of software installed. It will open on every logon and keep refreshing itself until it shows that all "required" software has been detected as installed. Technicians can then proceed with the next phase of build/handover process to the end user. Once all the software to check for is "GREEN", there could be a message on-screen to alert the technicians that all required software is now installed. Perhaps it could be colour-coded, so that software that is currently "not-detected" shows as RED text, and "detected" software shows as GREEN. It should be customizable to add new applications to check for. I would like to design a script that will query the local system to check whether a custom list of software is installed yet or not. First-time post from me, so please go easy on me!
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |