Jump to content

Mark G38

  • Posts

  • Joined

  • Last visited

1 Follower

Recent Profile Visitors

128 profile views
  1. Indeed. Should be happening within the next couple months I'm assuming as it's the #1 feature request according to their upvote system and it says it's currently in development. https://pulseway.featureupvote.com/suggestions/126669/auto-clearing-notifications
  2. @WYE Thanks for the response. I definitely forget about importing them for sure, and this does work/help, but as you mentioned, its definitely a workaround, which is getting tiresome to continue to implement workarounds for things that should definitely be in the UI or possible natively in Pulseway.
  3. Incoming next part. I'm SUPER disappointed at the moment with Pulseway. I spent a good amount of time setting up a way in which I thought I could really get some use out of notifications in Pulseway, all to realize at the moment, it was basically all for naught. I created a deployment script that downloads a custom PS module I put together to all my systems. In turn, I simply import this module at the beginning of every script I write, and it allows me to utilize custom functions that I use often enough to get tired of writing them out each time. Going off this, I created a custom event log which I write output from my scripts to, with their own event sources and Event IDs which mean certain things. Example would be Event ID 5 = Informational, 10 = Informational but Trigger automation (or so I wanted anyway), 15 = Is Error, and 20 = Is Error and Trigger automation off that (again, I wish). I thought this was gonna be a great way to be able to utilize tasks to run checks, pipe out information to the EVLog, and then trigger a notification when needed and a workflow when needed. But alas, Pulseway only let's me choose from Application, Security, System. Why? If I go to Event Log on the device through the Web UI, I can see my custom log and all the events inside. Why doesn't Pulseway either grab more than those logs (perhaps all root level logs) or simply allow you to enter the log name you want to pull from. This can't be a hard change, since the Agent is clearly grabbing this data since it can show it in the Web UI. Please, please, please Pulseway, make this change happen sooner so we can create custom alerts and workflows.
  4. Your first few posts are held and reviewed by a Pulseway staff member before it gets posted to stop forum spam. Once you have a few posts it no longer does that.
  5. Sure, but honestly, I feel like the suggestions that are new and simply don't get a lot of views, never really get considered, which was why I made this thread to begin with, but here it is. https://pulseway.featureupvote.com/suggestions/214566/more-flexible-task-scheduling
  6. Guess I'll continue to edit my original post with new items. I've added this bit under scripting: Tasks - We should have the ability to schedule tasks to run much more frequently that once per day. I would like the ability to run a custom script that checks for something specific let's say, once an hour, which then writes to a custom event log that I then have Pulseway set up to trigger an alert from. This would be helpful in creating plenty of custom alerts based on Event Log errors but once a day is not frequent enough in some cases. Also, in the same vein, workflows should be triggerable off the result of a script. In other words, I shouldn't HAVE to make it an event log entry. It would be great if I could set up a script via a task, and then set a workflow to check results of that script and allow me to choose either to alert or trigger a workflow on either a success of failure, whichever I wanted at that time.
  7. I'm guessing you don't have a domain setup in this environment? If you do, by all means, please utilize a GPO, it's much easier and is the recommended way for something like this. Or even set a login script. However, if these are not options for you, I've written the below you can use. I've tested it a little and it does the trick for all user accounts on a workstation (aside from Public, Administrator, Default). Please note, I don't know anything about your environment or how you envision this going. I assume you want to deploy it via Pulseway. This will force log off any users that are currently logged in, in order to mount their registry hive and set the needed key. Function New-FileDownload { param( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [string]$Url, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [string]$Destination ) $webClient = New-Object System.Net.WebClient $webClient.DownloadFile($Url, $Destination) if (Test-Path -LiteralPath $Destination) { Write-Verbose "File downloaded Successfully" return $true } else { Write-Verbose "File download Failed" return $false } } $ImageURL = "https://e11onze-public.s3.eu-west-3.amazonaws.com/Assets/Wallpaper_3840x2160.png" $Destination = "$($env:systemdrive)\Users\Public\Pictures\wallpaper.png" $ImageDownload = New-FileDownload -Url $ImageURL -Destination $Destination if ($ImageDownload) { Write-Output "Image downloaded. Continuing..." } else { Write-Output "Failed to download. Exiting." Exit 1 } $Users = (Get-ChildItem "$($env:systemdrive)\users").Name foreach ($User in $Users) { if ($User -eq $env:username) { Set-ItemProperty -Path "Registry::HKEY_CURRENT_USER\Control Panel\Desktop" -Name "Wallpaper" -value "$Destination" } if ($User -eq "Public" -or $User -eq "Administrator" -or $User -eq "Default") { Write-Output "Skipping $User" } else { $Sessions = Query Session $SessionID = $Sessions | Where-Object { $_ -match "$($User)" } if ($SessionID) { $ID = $SessionID.Split(' ', [System.StringSplitOptions]::RemoveEmptyEntries) LogOff $ID[2] Start-Sleep -Seconds 20 } $LoadHive = REG LOAD HKU\temp "$($env:systemdrive)\Users\$user\ntuser.dat" if ($LoadHive -match "successfully") { Set-ItemProperty -Path "Registry::HKEY_USERS\Temp\Control Panel\Desktop" -Name "Wallpaper" -value "$Destination" Write-Output "Image set for $User." [GC]::Collect() [GC]::WaitForPendingFinalizers() $UnloadHive = REG UNLOAD HKU\temp if ($UnloadHive -match "successfully") { Write-Output "Hive unloaded successfully." } else { Write-Output "Failed to unload hive. Exiting." Exit 1 } } else { Write-Output "Failed to load Hive for $User" } } } RUNDLL32.EXE USER32.DLL, UpdatePerUserSystemParameters , 1 , True
  8. I see it. Wish we could do something with those defaults scripts though
  9. Fantastic. Interesting as I didn't see these when I posted as I specifically checked before asking. Although, "What's New" section wasn't updated on my instance yet either at the time I posted, so perhaps I just somehow caught it before the update. Either way, I see both, so thanks!
  10. If you're deploying the agent using a probe from within the Pulseway Web UI, it installs silently without any prompts to the user. You can also reference this thread for silent install arguments among other options. https://forum.pulseway.com/topic/332-unattended-installation-for-msi/
  11. When are these changes coming out? I assume same time as the Group Policy changes?
  12. When are these changes coming out?
  13. Let me start off by saying this is not meant with any kind of hate or ill will. I very much love the Pulseway product overall, and I have been using it for a quite a number of years now. I very much want to see Pulseway continue to improve and catch up to a lot of the other RMMs out there by addressing some obvious "misses" with certain aspects of the software. This is going to be a bit of a novel but I hope the Pulseway staff and the community give it a read and feel free to comment, add suggestions, etc. The below items are too much to put into a bunch of separate feature requests. I apologize in advance if this is too much in one spot Interface/Web UI: Ability to completely remove or hide default scripts. Should also be able to delete individual ones within the default section. Ability to adjust script level permissions. There are some scripts I have written such as an MDM remote wipe type script that I want to be able to access within Pulseway if needed, or one of my higher tiered consultants but not my lower tier. I should be able to assign some sort of permissions to scripts to hide/show them based on security group, level, or team. A full inventory of the machine should be performed by the agent and visible in the web portal. This is a basic function of every other RMM I've used. I should be able to see all services on the machine, just like Pulseway looks at all applications installed. Services should then be selectable to be managed or not, or allow the ability to manage them right from that screen. Windows Updates - We should be able to easily see a list of installed updates on the machine without having to go back through Patch Policy History. The list could easily be populated on the Windows Updates section that Pulseway currently has. Dashboard - Needs more adjustable widgets. Patch status should be available as a dashboard widget with the ability to drill down to site/customer or filter for those things when creating the widget. PowerShell Console - Should be able to press up or some other key to be able to access, select previous inputs from that active session. Scripting: Input Variables - My single biggest issue with scripting currently is the lack of usability with the current custom input fields. It takes more time to click add/edit and input what is needed into the UI, then it does for me to just declare the same variables at the start of my script when writing them. Have script input variables work as environment variables, and they can be filled in at the time of script run. So if I have script to search for something by date range, I can create 2 input variables, Start & End, and leave them blank. When I got to run the script, it pops up a window with the available custom input variables allowing me to fill them in at that time. Here is an example of a popup window at the time of run for another RMM tool I've used. All these variables are declared in the script as $env:customvariablename, and then inside the RMM portal, at the script creation screen, they are entered in, much like you can with Pulseway, and you can select the type of variable. Variable value, Boolean, selection (dropdown). Whatever is selected/inputted at the time of ran is simply passed to the $env:customvariablename that corresponds to that input variable. I've shown the 3 areas of how this works to show the complete idea behind this in the attachments. Site Variables - Pretty much the same concept as above, except these are created at the site (customer) level instead of the script level. They are called in the same fashion as above. This would allow for much greater flexibly around scripting as many clients have license specific software that needs to be installed and being able to set a site(customer) level variable that gets pulled automatically when the script runs, would allow for 1 script to be made and ran across multiple clients at a time without having to edit the script or make copies with the unique license key for each. It would simply read from the site variable when running and insert whatever is in that site variable field. Output of scripts (the content) in the push notification or email alert. If I schedule a task to run on a recurring basis and I get a failure notification, being able to see why is incredible helpful. Or, even if it's a success, there are plenty of use cases why seeing the output is needed. If I'm running a script to collect xyz info across multiple systems, being able to easily see that in a central spot on the notification or email is imperative. I shouldn't have to log into Pulseway and check each machine or check the task and look through the report. Tasks - We should have the ability to schedule tasks to run much more frequently that once per day. I would like the ability to run a custom script that checks for something specific let's say, once an hour, which then writes to a custom event log that I then have Pulseway set up to trigger an alert from. This would be helpful in creating plenty of custom alerts based on Event Log errors but once a day is not frequent enough in some cases. Workflows As I understand it, the entire workflow idea works around something that generates a notification. This creates a big issue with workflows in the sense that, we are limited to whatever Pulseway deems an acceptable "condition" or filter. What would make workflows amazing, would be essentially turning them into "custom monitors". What I mean by that is I create a script that let's say reads some random programs event log because my customer needs to know when this particular software generates a specific error, (and no, it doesn't write this error to any event log). There is no built in way to approach this with Pulseway. If I could simply create a workflow and choose to run a script as the initial item, and then based on the exit code of that script, do other things from run a script to fix, generate an alert to my team so someone can go in and look at what is causing the error and resolve it, etc. I could apply that workflow to any systems I wanted, and set it to run every 10 minutes, an hour, whatever, and when it detects the event, again, based on how the script was written, it triggers the workflow or the alert. As in the example above, if I set it to run every 30 minutes and look for "if error exists", if it does, it then creates an alert so that myself and my team get notified. But it would also allow the workflow to perform additional steps as remediation if desired. Another useful example of what I'm trying to explain, is perhaps I want to perform a certain set of steps based on a tag setup in Pulseway. I should be able to set up a workflow against a tag or against a scope and set it to run every so often. When a machine is then given that "tag" the workflow triggers and performs the steps assigned. This goes along with 4 under scripting. In the same vein, workflows should be triggerable off the result of a script. In other words, I shouldn't HAVE to make it an event log entry. It would be great if I could set up a script via a task, and then set a workflow to check results of that script and allow me to choose either to alert or trigger a workflow on either a success of failure, whichever I wanted at that time. Cloud Backup: I would LOVE to use Pulseway's built in cloud backup, but there are just too many flaws / missing items in it currently. Scheduling - The only current options are every day, every 2, or every 3 days. All backup solutions I've ever seen, give you the ability to select which day(s) you want the backup to run, be it every Monday, or any multiple combination of days. We should also have the ability to select the TIME the backup will take place. Right now, it uses the time the backup job was created, so if I want a job to happen at 2 AM, I have to stay up until 2 AM to schedule that job for the first time. This is a very shocking miss on the backup front. Ability to exclude certain file types (by extension) is needed. Notification on job success or job failure is a MUST, not how it current is where it notifies you once it reaches below a targeted % range. The ability to see the used space. Since your cloud backup works off either 500GB or 1TB licenses, we need to be able to see how much space is current in use per machine so we can plan to take the needed action should the backups start approaching the limit. A report on the files backed up. Since this is a file only backup type, it's imperative to be able to see a list of all files backed up during the job, and if they were successful, failed, or skipped. The ability to specify if the backup is considered a failure based on % of failed or skipped files is also needed. For example, if I'm targeting 1000 files, perhaps 5 failed isn't a concern to me, but if 300 fail, that's a failed backup job IMO. Therefore, having the ability to say if 10% (or whatever amount I want) of files fail to backup, the job is considered failed. In general, during my demo of this, I've had some concerns which your staff did witness directly: The next backup date seems to fluctuate between the current day and next day if you sit that the backup status screen of Pulseway. The initial dig into a backup job, showed folders that I had excluded, were still present and you could drill down. However, after mounting a recovery to explore, the interface then hid all the folders not backed up. Concerning if it's collecting any data from folders I specifically didn't include in the target paths. You can see from the image below, it backed up 2 days in a row, almost the exact same amount of files and used the same amount of space. This is a test VM which had no changes in the test target directories, and yet the 2nd day it did what appears to be a full backup again. Subsequent days seem to have improved and the file count went down to a more expected level. Here are some feature requests I submitted around some of the points above: https://pulseway.featureupvote.com/suggestions/189283/more-robust-input-and-site-variables https://pulseway.featureupvote.com/suggestions/189917/patch-status-dashboard-widget https://pulseway.featureupvote.com/suggestions/214566/more-flexible-task-scheduling
  14. Apologies. Don't use the one above. It DOES work, however, I realized I posted my original version which I realized not long after creating it that if you run it against a machine that already had it ran before, depending on what it's set to, it won't adjust it correctly. Please use this instead. I've actually modified this one to look at both x86 and x64 registry paths, as well as being able to enter multiple apps you may want to hide from your users. I've left mine in as examples. This will loop through both registry paths, and if the app exists there, will check for SystemComponent and add or modify as necessary. Let me know if you have any trouble with it. $ErrorActionPreference = "SilentlyContinue" $RegPaths = @( "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" ) $AppsToHide = @( "Pulseway", "Splashtop Streamer", "Splashtop Software Updater" ) foreach ($App in $AppsToHide) { foreach ($Path in $RegPaths) { $AppKey = (Get-ItemProperty $Path | Where-Object { $_.DisplayName -eq $($App) }).PSPath if ($null -ne $AppKey) { $SystemComponent = Get-ItemProperty $AppKey -Name SystemComponent if (!($SystemComponent)) { Write-Output "$($App) SystemComponent key not found. Adding..." New-ItemProperty "$AppKey" -Name "SystemComponent" -Value 1 -PropertyType DWord } else { $SystemComponentValue = (Get-ItemProperty $AppKey -Name SystemComponent).SystemComponent if ($SystemComponentValue -eq 0) { Write-Output "$($App) key value currently 0. Setting value to 1." Set-ItemProperty "$AppKey" -Name "SystemComponent" -Value 1 } if ($SystemComponentValue -eq 1) { Write-Output "$($App) key value already set to 1." } } } else { Write-Output "$($App) not found in $($Path)" } } }
  15. Edited because I'm silly and posted my old version. Please see the updated and correct one below.
  • Create New...