Share your best "no dumb questions" moment from deployment!
Pinned FeaturedHello, Community!
We're looking for the most insightful "no dumb questions" moments that arose during your deployment process. We believe every question is a step toward a better understanding, and we want to hear yours!
Here's how to participate:
- Login to the Community with your DNSFilter login credentials to submit your initial entry as a comment on this post
- Share the question you asked (or want to ask) during deployment that you initially thought might be too basic or obvious.
- Tell us how this question has or could lead to a valuable insight or a significant improvement in your deployment strategy.
- Entries will be accepted until September 20, 2024.
Prizes:
The top question will be recognized with a DNSFilter branded prize and an opportunity to have a shoutout in the Community as well as our Newsletter!
FAQ (view additional Processes and Guidelines for more details):
Q: Can I participate if I'm a new DNSFilter user?
A: Absolutely! The challenge is open to all U.S. based DNSFilter users, regardless of tenure.
Q: How will the winners be determined?
A: We will have a random drawing at the end of the challenge period with each of your entries individually counted toward your chance to win!
Q: Are there any restrictions on how many times I can enter?
A: You will have a maximum of 30 opportunities to enter. Participants must first submit one question and answer (if applicable) as a comment under this post worth 5 entries. You will then have 25 additional entry opportunities by either:
- Create a new post under the related Community Topic (e.g. ask a question, pose a discussion point)
- Answer or reply to existing posts within the Community by commenting under them
Call to action:
Don't be shy – let's celebrate curiosity and the journey of discovery together by sharing your questions below! Your questions could win you a prize and help others avoid deployment pitfalls.
Remember, all you need to do to enter is to comment on this post with your "no dumb question."
Good luck, and happy sharing!
-
How do I deploy DNSFilter with [insert RMM here]?
For Action1 RMM, I wrote a PS script to cleanly uninstall then reinstall the latest version of DNSFilter if it is newer. On some of my clients, add/remove programs showed two versions of DNSFilter installed (old entry still in registry), the script looks for that as well. It takes two parameters: CurrentDNSFilterVersion, SiteKey.
# Ensure PowerShell is running with administrative privileges
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit
}# Temporary Directory and Log File
$TempDir = 'C:\Temp\DNS_Filter_Install'
$LogFile = Join-Path $TempDir 'DNSFilter_Install.log'# Create Temp Directory if it does not exist
if (-not (Test-Path $TempDir)) {
New-Item -Path $TempDir -ItemType Directory
}# Function to log messages
function Log-Message {
param (
[string]$message
)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$logEntry = "$timestamp - $message"
Add-Content -Path $LogFile -Value $logEntry
Write-Output $logEntry
}# Log Start of Script
Log-Message "DNS Filter Removal and Install Started"#Remove Obsolete DNSFilter registry key
$registryKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4672B262-2CA3-4726-A88F-9FE2E6C847F5}"
if (Test-Path $registryKey) {
# Delete the registry key if it exists
Remove-Item $registryKey
Log-Message "Obsolete Registry key deleted successfully."
} else {
Log-Message "Obsolete key does not exist."
}# Function to compare version numbers
function Compare-Version {
param (
[string]$version1,
[string]$version2
)
$v1 = [version]$version1
$v2 = [version]$version2
return $v1.CompareTo($v2)
}# Check DNSFilter Agent versions
$dnsFilterVersion = "${CurrentDNSFilterVersion}"
$installedVersions = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" | Where-Object { $_.DisplayName -like "*DNSFilter Agent*" }).DisplayVersionif ($installedVersions) {
$proceed = $false
foreach ($installedVersion in $installedVersions) {
Log-Message "Installed DNSFilter Agent version: $installedVersion"
$compareResult = Compare-Version $installedVersion $dnsFilterVersion
if ($compareResult -lt 0) {
$proceed = $true
break
}
}
if ($proceed) {
Log-Message "At least one DNSFilter Agent version is less than $dnsFilterVersion. Proceeding with script."
} else {
Log-Message "All installed DNSFilter Agent versions are equal to or greater than $dnsFilterVersion. Exiting script."
exit
}
} else {
Log-Message "DNSFilter Agent is not installed. Proceeding with script."
}# Network Key
$nkey = "${SiteKey}"# DNS Filter Installer Details
$InstallerDownload = 'https://download.dnsfilter.com/User_Agent/Windows/DNSFilter_Agent_Setup.msi'
$InstallerFile = 'DNSFilter_Agent_Setup.msi'# Download DNS Filter Installer
Log-Message "Downloading DNS Filter Installer"
Invoke-WebRequest -Uri $InstallerDownload -OutFile (Join-Path $TempDir $InstallerFile)# Uninstall DNS Filter Function
Log-Message "Starting Uninstallation Process"
function Uninstall-App {
param (
[string]$appName
)
Log-Message "Uninstalling $appName"
$uninstallKeys = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
foreach ($key in $uninstallKeys) {
$displayName = $key.GetValue("DisplayName", $null)
if ($displayName -and $displayName -like "*$appName*") {
$uninstallString = $key.GetValue("UninstallString")
if ($uninstallString) {
# Extract the GUID from the uninstall string
if ($uninstallString -match '/X({.*})') {
$guid = $matches[1]
Log-Message "Uninstalling $displayName with GUID: $guid"
Start-Process msiexec.exe -ArgumentList "/X $guid /qb" -Wait
} elseif ($uninstallString -match 'MsiExec.exe /X(.*)') {
$guid = $matches[1]
Log-Message "Uninstalling $displayName with GUID: $guid"
Start-Process msiexec.exe -ArgumentList "/X $guid /qb" -Wait
}
}
}
}
}Uninstall-App "DNSFilter Agent"
Uninstall-App "DNS Agent"# Pause to ensure uninstallation completes
Start-Sleep 4Log-Message "Removing Registry Keys"
Remove-Item -Path "HKLM:\Software\DNSFilter" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\DNSAgent" -Recurse -Force -ErrorAction SilentlyContinue# Pause before installation
Start-Sleep 5# Install DNS Filter
Log-Message "Installing DNS Filter"
Start-Process msiexec.exe -ArgumentList "/qn /i `"$TempDir\$InstallerFile`" NKEY=`"$nkey`"" -Wait# Cleanup temporary files
Log-Message "Cleaning up temporary files (except log file)"
Start-Sleep 10
Get-ChildItem -Path $TempDir | Where-Object { $_.Name -ne 'DNSFilter_Install.log' } | Remove-Item -Recurse -Force# Wait 5 seconds
Start-Sleep 5# Restart DNSFilter Agent service
Log-Message "Restarting DNSFilter Agent service"
Restart-Service -Name "DNSFilter Agent"# Wait 5 seconds to allow service to start
Start-Sleep 5# Check if the service is running
$service = Get-Service -Name "DNSFilter Agent"if ($service.Status -eq 'Running') {
Log-Message "DNS Filter Installation Completed Successfully."
} else {
Log-Message "Error: DNS Filter Installation did not complete successfully. The DNSFilter Agent service is not running."
}3 -
How do you properly uninstall a Roaming Client?
Answer: Run the Uninstall script, then delete the device manually form the dashboard (if necessary).The first time I deployed some clients I ended up having to change the Secret Site Key and was attempting to simply delete the device from the dashboard to start over, however that didn't actually uninstall the Roaming Client. I had to call in support and was informed that you have to uninstall the device first then remove it from the dashboard.
2 -
When companies have a BYOD structure. How can we use the roaming client in iOS? Devices are personal and as a company we have no administrative rights on them. However we do want users to use DNSF.
For iOS we need administrative privileges to use the app. What is the best practice or work around for this?
2 -
Richard van Zundert Thank you for your question! At this time, the roaming client isn't compatible with mobile iOS devices unless they are managed through an MDM (Mobile Device Management) system with administrative rights. However, if your company uses our services at the network level, those devices will still be protected while connected to your network in office. We’re here to help if you have any other questions!
1 -
We are constantly redeploying devices every week. It has never made sense to me why we are required to go into the install page for the roaming client in order to allow successful deployment of the agent through our MDM.
Of course, if you know that you are not wanting to deploy new devices, it is great to have an option to disable deployment to prevent from misuse; however, I feel that most people are not in that scenario if they are properly reimaging devices as they swap between end users.
Removing this extra step would help ensure our newly provisioned devices are consistently deployed with the desired roaming client.1
Please sign in to leave a comment.
Comments
5 comments