Jump to content

johnduprey

Members
  • Content Count

    87
  • Joined

  • Last visited

  • Days Won

    5

johnduprey last won the day on June 1

johnduprey had the most liked content!

Community Reputation

9 Neutral

My Information

  • Agent Count
    3000 - 4000 Agents

Converted

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. This plugin installs a role and remote agent plugin to target computers that have mounted volumes without drive letters. Volume info is collected via WMI and passed back to automate through the gatherprocess interface. In order to prevent automate from marking the drives as missing immediately, install the trigger in the zip. Should you wish to uninstall the plugin, just remove it from plugin manager and run the uninstall sql file in the zip. MountedFolderInfo.zip
  2. Adding on to this, I have a monitor and autofix script to change the mac address to something else on the agent. Just make sure to set the alert template to a Run Script one and choose the script after import. Known Duplicate MAC Address Repair.xml
  3. LEFT JOIN -- Derived tables full of how many patch jobs have already run today (SELECT c.`ComputerID` , COUNT(cmd.`CmdID`) AS `CmdCnt` FROM computers c LEFT JOIN commands cmd ON cmd.computerid = c.computerid AND cmd.command = 100 AND cmd.dateupdated >= CURDATE() GROUP BY cmd.`ComputerID`) AS `Jobcounts` ON computers.`ComputerID`=Jobcounts.ComputerID This should get you the job count including 0 (limited to the current day)
  4. Try this out to get the actual patch window duration. I *think* it should be accurate (tested against my own environment) SELECT NAME, CASE WHEN duration < 9 THEN (duration * .25) + 1 WHEN duration = 9 THEN (duration * .25) + 1.75 WHEN duration > 9 THEN duration - 5 END AS duration FROM installsoftwarepolicies
  5. Glad to help! There must be a bug going around - not feeling well myself.
  6. So what I posted were the changes. You were looking for jobcounts.cmdcount < 3 but not checking to see if it was null. The other one was looking for 2 or more missing patches.
  7. @BGags you should modify the following lines on your query to capture more computers: -- Make sure this system hasn't already run more than two Install Patch commands today AND CAST(IFNULL(Jobcounts.CmdCnt,'0') as unsigned) < 3 -- Include systems with missing patches AND (CAST(IFNULL(PatchesMissing.MissingCount,'0') AS UNSIGNED)) > 0
  8. Updated my script to include a few more error codes and the option to disable XPS and print to PDF (ran into weird compatibility issues with some systems)
  9. I replaced the setup execution with an execute script function that gets the error code and translates it into a human readable message: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-command-line-options $ErrorActionPreference = "SilentlyContinue" # Disable PDF and XPS features - This might not be necessary but I ran into compatibility issues with those drivers in some rare instances #Disable-WindowsOptionalFeature -Online -FeatureName Printing-XPSServices-Features | Out-Null #Disable-WindowsOptionalFeature -Online -FeatureName Printing-PrintToPDFServices-Features | Out-Null # Remove compatscancache.dat file from failed upgrade Remove-Item -Path "@LocalPath@\Windows10UpgradeLogs\panther\compatscancache.dat" -Force -ErrorAction SilentlyContinue | Out-Null # Run the install silently and log files $install = Start-Process -FilePath "@DriveLetter@:\setup.exe" -ArgumentList "/auto upgrade", "/quiet", "/Compat IgnoreWarning", "/DynamicUpdate disable", "/copylogs @LocalPath@\Windows10UpgradeLogs", "/migratedrivers all" -Wait -PassThru $hex = "{0:x}" -f $install.ExitCode $exit_code = "0x$hex" # Get latest compatibility report XML and list programs [xml]$compatreport = Get-ChildItem @LocalPath@\Windows10UpgradeLogs\panther\compat* | sort LastWriteTime | select -last 1 | Get-Content $incompatible_programs = $compatreport.Compatreport.Programs | % {$_.Program.Name} # Convert hex code to human readable $message = Switch ($exit_code) { "0xC1900210" { "SUCCESS: No compatibility issues detected"; break } "0xC1900101" { "ERROR: Driver compatibility issue detected. https://docs.microsoft.com/en-us/windows/deployment/upgrade/resolution-procedures"; break } "0xC1900208" { "ERROR: Compatibility issue detected, unsupported programs:`r`n$incompatible_programs`r`n"; break } "0xC1900204" { "ERROR: Migration choice not available." ; break } "0xC1900200" { "ERROR: System not compatible with upgrade." ; break } "0xC190020E" { "ERROR: Insufficient disk space." ; break } "0x80070490" { "ERROR: General Windows Update failure, try the following troubleshooting steps`r`n- Run update troubleshooter`r`n- sfc /scannow`r`n- DISM.exe /Online /Cleanup-image /Restorehealth`r`n - Reset windows update components.`r`n"; break } "0xC1800118" { "ERROR: WSUS has downloaded content that it cannot use due to a missing decryption key."; break } "0x80090011" { "ERROR: A device driver error occurred during user data migration."; break } "0xC7700112" { "ERROR: Failure to complete writing data to the system drive, possibly due to write access failure on the hard disk."; break } "0xC1900201" { "ERROR: The system did not pass the minimum requirements to install the update."; break } "0x80240017" { "ERROR: The upgrade is unavailable for this edition of Windows."; break } "0x80070020" { "ERROR: The existing process cannot access the file because it is being used by another process."; break } "0xC1900107" { "ERROR: A cleanup operation from a previous installation attempt is still pending and a system reboot is required in order to continue the upgrade."; break } "0x3" { "SUCCESS: The upgrade started, no compatibility issues."; break } "0x5" { "ERROR: The compatibility check detected issues that require resolution before the upgrade can continue."; break } "0x7" { "ERROR: The installation option (upgrade or data only) was not available."; break } "0x0" { "SUCCESSS: Upgrade started."; break } default { "WARNING: Unknown exit code."; break } } Write-Output "$message (Code: $exit_code)"
  10. Unfortunately this stopped working after LabTech 11. ConnectWise changed all the authentication interfaces and hardcoded them for google, duo, etc. You should use their official plugin going forward.
  11. @troms @bigdog09, The plugin problems can be remedied by "updating" the connectwise control remote agent plugin from plugin manager and reloading the dbagent. Just grab the dll from the Automate server plugins folder.
  12. The purpose of this script is to collect license data for windows from a workstation and populate EDFs. There are monitors included that can be used to collect license data and report on any potential issues. Directions: Import the XML expansion first, this includes the script and EDF values. Once the EDFs are installed, import the monitor SQL Create an Alert Template on the Licensing - Refresh License Data monitor to run the script. This will refresh KMS/Eval based licenses daily, MAK/Retail/OEM licenses generally will never need to be refreshed since they don't expire. Set alert templates on the other monitors to create a ticket or send an email accordingly. Edit: Updated to add Partial Product Key EDF and modified schedule to refresh licensing weekly for systems with a valid non KMS license. Windows Licensing.zip
  13. That's just for the additional stuff (tracking the file to the printer driver and the printer if it exists). I'm sure there's a way to make it compatible with older versions, but I didn't write that in yet. Edit: Looks like powershell cmdlets for windows 8+ are just wrappers for WMI queries. This might actually be easier than I thought initially.
  14. This is a basic script that uses AppCrashView and a PowerShell script to parse spoolsv.exe crash reports to identify problematic drivers. The driver detection requires Win8+ due to the Get-PrinterDriver and Get-Printer cmdlets. Edit: This script has been updated to support Windows 7 systems using WMI queries in place of the Get-Printer and Get-PrinterDriver cmdlets. Print Spooler Crash Report.xml
  15. Unfortunately the custom tab functionality has stopped working with embedded webpages. I would recommend checking out WarrantyMaster as it's an awesome product (with a free tier).
×
×
  • Create New...