What is the economic impact of switching from an on-premises SQL Server to Azure? Microsoft asked Forrester to find out. Four client interviews later, the results are in: See how you can save by switching to Azure!
Visual timeline: SQL Server 2008 end of support (2019) and Windows Server 2008 EOS (2020)—start your secure migration now.
Relying on SQL Server 2008 or Windows Server 2008 exposes your operations to severe security risks since both reached end of support years ago—SQL Server on July 9, 2019, and Windows Server on January 14, 2020. Without Microsoft’s security patches, your databases and servers are vulnerable to exploits, data breaches, and compliance failures that could cost millions in fines, downtime, and lost trust.
Critical Risks for Your Business
Unpatched systems like these attract cyberattacks targeting outdated databases and servers, often holding sensitive customer data in accounting, healthcare, or charity sectors. Regulatory mandates (e.g., HIPAA, PCI-DSS) demand supported software, risking penalties if breached. Performance lags and incompatibility with modern apps further erode efficiency, directly hitting your bottom line.
Action Steps for You and Your IT Team
Follow these prioritized steps to migrate securely and minimize disruption.
Inventory Assets: Use tools like Microsoft Assessment and Planning Toolkit (MAP) to scan for SQL Server 2008/R2 and Windows Server 2008 instances across on-premises, VMs, and apps.
Assess Compatibility: Run SQL Server Upgrade Advisor to identify migration blockers; test apps on newer versions like SQL Server 2022 or Azure SQL.
Choose Path: Upgrade in-place to supported versions, lift-and-shift to Azure, or modernize with containers—avoid Extended Security Updates (ESU) as they’re costly and temporary (up to 3 years extra, post-2023).
Plan Migration: Phase workloads by risk; start with dev/test environments. Budget 3-6 months for complex setups.
Test and Go Live: Validate post-migration with backups, failover tests, and monitoring; cut over during low-traffic windows.
Secure and Monitor: Enable Azure Defender, multi-factor auth, and ongoing patching on new platforms.
Option
Pros
Cons
Cost Estimate
On-Prem Upgrade
Familiar setup
Hardware refresh needed
High upfront
Azure Migration
Scalable, pay-as-you-go
Learning curve
Lower TCO long-term
ESU (Temporary)
Quick fix
Expensive, no new features
$30K+ per core/year
FAQs: Client Questions Answered
Q: What if we can’t migrate immediately? A: Purchase ESU for critical security patches, but it’s a stopgap—plan full migration to avoid doubled costs later.
Q: Will our apps break on upgrade? A: Most do fine; use upgrade advisors early. Legacy apps may need refactoring, but Azure compatibility is high for 2008 workloads.
Q: How much downtime? A: Near-zero with Azure Site Recovery or Database Migration Service; test to confirm.
Q: What’s the breach risk? A: High—unpatched flaws enable ransomware/data theft. Post-EOS, no auto-updates mean manual fixes only if Microsoft deems critical.
Q: Cloud or on-prem? A: Cloud cuts costs 30-50% via scaling; ideal for variable workloads in your industries.
How Farmhouse Networking Helps
Farmhouse Networking specializes in B2B migrations for accounting, healthcare, and charity clients, driving organic traffic via SEO-optimized sites while securing infrastructure. We conduct free EOS assessments, execute inventory/scans, and handle end-to-end migrations to Azure/SQL Managed Instance—reducing risk and boosting performance. Our branding/SEO strategies ensure your site ranks for terms like “SQL Server 2008 migration,” converting visitors to leads. Past projects cut downtime 90% and compliance risks to zero.
STIR/SHAKEN authentication prevents legitimate business calls from spam filters
Here is a quick tip for anyone doing advertising from their phone number, you can be marked as SPAM LIKELY or SPAM RISK by phone companies. Each phone carrier keeps a list of numbers they determine to be spam risks based on the history of the number. Unfortunately, there is no central database or service so far that manages this number designation.
What Causes the SPAM Designation?
In short, here are the most obvious reasons for designation:
Volume of Outbound Calls Per Day Per Number
Someone Flagged a call from your number in that carrier’s app as spam
Outbound Caller ID number is not set properly from your system and incomplete will probably be flagged as spam automatically
How to Get De-Listed
You can use the links or email addresses below to register legitimate numbers and also address any incorrect labeling or call blocking with other carriers:
As our business continues to focus on providing white labeled Tier 3 IT support services, RMM as a service, and co-managed IT services this blog will be highlighting tips for RMM automation. Here is one of the recent scripts we added to our RMM. We often find ourselves wanting to modify the registry for all users:
Variables
It is important to not store variables in scripts especially when they are credentials for a user on the local computer, so make sure to define variables accordingly. In this script there are no variables like that, but wanted to explain some that are in the script:
$PatternSID = this is the Regular Expression pattern for the Security ID of the users to look for (found it was different for local / domain vs. Azure)
$ProfileList = List of SIDs and other information from the HKLM folders
$LoadedHives = List of logged in users from HKU
$UnloadedHives = List of not logged in users from HKU
Script Snippet
# Regex pattern for Local or Domain SIDs
$PatternSID = 'S-1-5-21-\d+-\d+\-\d+\-\d+$'
# Get Username, SID, and location of ntuser.dat for all users
$ProfileList = gp 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\*' | Where-Object {$_.PSChildName -match $PatternSID} |
Select @{name="SID";expression={$_.PSChildName}},
@{name="UserHive";expression={"$($_.ProfileImagePath)\ntuser.dat"}},
@{name="Username";expression={$_.ProfileImagePath -replace '^(.*[\\\/])', ''}}
# Get all user SIDs found in HKEY_USERS (ntuder.dat files that are loaded)
$LoadedHives = gci Registry::HKEY_USERS | ? {$_.PSChildname -match $PatternSID} | Select @{name="SID";expression={$_.PSChildName}}
# Get all users that are not currently logged
$UnloadedHives = Compare-Object $ProfileList.SID $LoadedHives.SID | Select @{name="SID";expression={$_.InputObject}}, UserHive, Username
# Loop through each profile on the machine
Foreach ($item in $ProfileList) {
# Load User ntuser.dat if it's not already loaded
IF ($item.SID -in $UnloadedHives.SID) {
reg load HKU\$($Item.SID) $($Item.UserHive) | Out-Null
}
#####################################################################
# This is where you can read/modify a users portion of the registry
# This example checks for a key, adds it if missing, and creates / changes a DWORD in that key
"{0}" -f $($item.Username) | Write-Output
If (!(Test-Path registry::HKEY_USERS\$($Item.SID)\SOFTWARE\Microsoft\Windows\CurrentVersion\UserProfileEngagement)) {
New-Item -Path registry::HKEY_USERS\$($Item.SID)\SOFTWARE\Microsoft\Windows\CurrentVersion\UserProfileEngagement -Force | Out-Null
}
Set-ItemProperty registry::HKEY_USERS\$($Item.SID)\SOFTWARE\Microsoft\Windows\CurrentVersion\UserProfileEngagement -Name “ScoobeSystemSettingEnabled” -Value “0” -Type DWord
#####################################################################
# Unload ntuser.dat
IF ($item.SID -in $UnloadedHives.SID) {
### Garbage collection and closing of ntuser.dat ###
[gc]::Collect()
reg unload HKU\$($Item.SID) | Out-Null
}
}
# Regex pattern for AzureAD SIDs
$PatternSID = 'S-1-12-1-\d+-\d+\-\d+\-\d+$'
# Get Username, SID, and location of ntuser.dat for all users
$ProfileList = gp 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\*' | Where-Object {$_.PSChildName -match $PatternSID} |
Select @{name="SID";expression={$_.PSChildName}},
@{name="UserHive";expression={"$($_.ProfileImagePath)\ntuser.dat"}},
@{name="Username";expression={$_.ProfileImagePath -replace '^(.*[\\\/])', ''}}
# Get all user SIDs found in HKEY_USERS (ntuder.dat files that are loaded)
$LoadedHives = gci Registry::HKEY_USERS | ? {$_.PSChildname -match $PatternSID} | Select @{name="SID";expression={$_.PSChildName}}
# Get all users that are not currently logged
$UnloadedHives = Compare-Object $ProfileList.SID $LoadedHives.SID | Select @{name="SID";expression={$_.InputObject}}, UserHive, Username
# Loop through each profile on the machine
Foreach ($item in $ProfileList) {
# Load User ntuser.dat if it's not already loaded
IF ($item.SID -in $UnloadedHives.SID) {
reg load HKU\$($Item.SID) $($Item.UserHive) | Out-Null
}
#####################################################################
# This is where you can read/modify a users portion of the registry
# This example checks for a key, adds it if missing, and creates / changes a DWORD in that key
"{0}" -f $($item.Username) | Write-Output
If (!(Test-Path registry::HKEY_USERS\$($Item.SID)\SOFTWARE\Microsoft\Windows\CurrentVersion\UserProfileEngagement)) {
New-Item -Path registry::HKEY_USERS\$($Item.SID)\SOFTWARE\Microsoft\Windows\CurrentVersion\UserProfileEngagement -Force | Out-Null
}
Set-ItemProperty registry::HKEY_USERS\$($Item.SID)\SOFTWARE\Microsoft\Windows\CurrentVersion\UserProfileEngagement -Name “ScoobeSystemSettingEnabled” -Value “0” -Type DWord
#####################################################################
# Unload ntuser.dat
IF ($item.SID -in $UnloadedHives.SID) {
### Garbage collection and closing of ntuser.dat ###
[gc]::Collect()
reg unload HKU\$($Item.SID) | Out-Null
}
}
Checking whether each item already exists helps the RMM to get the proper exit code and not show the script as failed when run.
If your company is a MSP or wants to become one and automation just seems out of reach, then contact us to run your RMM for you.
Nobody wants to be hacked, breached, compromised, or whatever else they are calling it now. Here is a quick list of things to think about to keep your company safe:
Compromise Prevention
Keep track of your inventory, both software and hardware.
Make sure to properly dispose of these things (recycle or responsible destruction)
Scan your network for vulnerabilities
Patch or remediate everything you find
Manage your antivirus & keep it up-to-date
Keep your passwords complex & safely stored
Remove all users / accounts when no longer in use
Look at best practices to harden your computers / network to attacks
Monitor your network for strange activity (indicators of compromise)
If your company is concerned about security, then contact us to take care of it for you.
Researching issues that several clients were having with slow Windows Roaming Profile logins and found that the common denominator was profiles being too large. Looked at Event Viewer and found nothing but Event ID 6005 – “The winlogon notification subscriber is taking long time to handle the notification event (Logon).” Looked at their Group Policy settings and found the folder that profiles were being saved in. Ran WinDirStat on the user.v6 folder and found some interesting details. It looks like downloads, Slack, Teams, and Zoom were taking up 13+GB of data that was then trying to be synced over the network. Looks like it is time to update the Group Policy to exclude some folders:If your company is looking to virtualize your servers or take them to the cloud, then contact us to setup migration evaluation.
GPO – Exclude directories in Roaming Profile
GPO exclusions slash roaming profile sync time from minutes to seconds
Open Group Policy Management
Edit the Roaming Profile policy
Open User Configuration > Policies > Administrative Templates > System > User Profiles
Enable – Exclude directories in roaming profiles
Add the following directories – Downloads;AppData\Roaming\Slack;AppData\Roaming\Microsoft\Teams;AppData\Roaming\Zoom
Ok your way out
Open Windows Explorer and navigate to the user.v6 folder and delete the following folders:
Downloads
AppData\Roaming\Slack
AppData\Roaming\Microsoft\Teams
AppData\Roaming\Zoom
Wait 15 minutes for changes to propagate then reboot the effected machines and login again.
If your company is using roaming profiles to keep employees agile in the office, then contact us to setup a group policy evaluation.
Macrium images restore seamlessly to Synology VMs for rapid virtualization
This was a strange one, but I have done it now more than once for a Tier 3 / Co-Managed IT client. They use the Macrium Reflect software to do image backups of client servers. They are looking to virtualize these servers going forward and wanted to know if it was possible to restore from Macrium Reflect to a Synology VM. Here is the process that we found to make it work:
Assumptions
We assume that you already have a Synology device setup and functioning properly.
We assume that you already installed the Virtual Machine Manager app on the Synology
We assume you already went through the initial setup wizard of the Virtual Machine Manager app
We assume that you have been backing up the server and have a valid image backup file
We assume you know the network path to these backup files
We assume you already know (and possess on the Synology) the required amount of CPU, Memory, and HDD space.
Process
Create Macrium Reflect bootable Rescue media
Open Macrium Reflect
Click on the Restore tab
Open Other Tasks on the left hand side
Choose Create bootable Rescue media
Browse to where the current backups are stored and save it there (this makes finding everything easier later)
Click Build (You may need to install some pre-requisites to make this possible, but Macrium Reflect with prompt you for it)
Create Virtual Machine
Open the Synology Virtual Machine Manager app
Click on Image
Click on the Add button
Find the Macrium Reflect Rescue media and add it to local storage
Click on Virtual Machine on the left
Click the Create button
Choose the Microsoft Windows option (if appropriate)
Select the proper storage amount
Give it a name, CPU, Memory (as needed)
Give it the needed storage amount(s)
Leave it connected to the default network
Download the Synology Guest Tools if needed.
Select Macrium Reflect Rescue media for the ISO file for bootup
Do not start the automatically
Edit the VM and change it to start from the CD ROM
Power it on
Restore from backup
Connect to the VM
Wait for Macrium Reflect Rescue media to boot (this can take awhile)
Click on the blue computer icon at the bottom
Click on the Map Network Drive icon
Type in need information and click OK
Go back to the Macrium Reflect window
Click on Browse for an image or backup file to restore
Find the appropriate file in the newly mapped network drive
Click on Restore Image
Select the target drive(s)
Click Next, Finished
Wait for restore to complete (this will take a long time)
Prepare restored image
Once completed, click on the ReDeploy restored image to new hardware
Add drivers if needed
Accept any drivers it finds
Accept the default options
Finish the wizard by closing
Power off the VM
Edit the VM Storage to make the disk a SATA controller instead
Edit the VM Others to make the BIOS UEFI
Edit the VM Network to Not Connected
Power on the VM
Login and install the Synology Guest Tools from the attached CD-ROM drive
Power off the VM
Edit the VM Network to use the default connection
Power on the VM if you are ready to deploy
If your company is looking to virtualize your servers or take them to the cloud, then contact us to setup migration evaluation.
Protect your remote workforce with managed cybersecurity solutions from Farmhouse Networking.
Remote work isn’t a trend anymore—it’s the new normal. As business owners embrace flexibility for their teams, the question isn’t whether remote work is here to stay, but how to keep it secure. Every remote connection, off-site login, and cloud app increases your organization’s exposure to cyber threats. Yet with a strategic approach and the right IT partner, you can maintain both productivity and peace of mind.
Let’s explore practical steps to safeguard your remote workforce and keep your company’s data protected—no matter where your employees log in from.
Step 1: Strengthen Endpoint Security
Your employees’ laptops, tablets, and smartphones are the front lines of your cybersecurity defense.
Implement device management policies: Require company-issued or managed devices only, using mobile device management (MDM) tools to enforce security settings and lock or wipe lost devices.
Apply regular updates: Patch management ensures operating systems and applications stay current against known vulnerabilities.
Use advanced antivirus and EDR: Endpoint Detection and Response (EDR) continually monitors and analyzes device activity, identifying suspicious behavior early.
Strong endpoint protection helps you prevent compromised devices from becoming entry points into your network.
Step 2: Establish Secure Remote Access
Allowing remote access shouldn’t mean leaving your digital doors wide open.
Deploy a VPN (Virtual Private Network): Encrypt employee connections to your office network and cloud services.
Shift to Zero Trust Network Access (ZTNA): Adopt a “never trust, always verify” model that authenticates users and devices each time they connect.
Use multi-factor authentication (MFA): Combine passwords with a second factor, like a mobile app code or biometric scan, to block unauthorized access.
These technologies work together to create secure pathways for remote workers without slowing them down.
Step 3: Protect Your Cloud and Collaboration Tools
Cloud storage and file-sharing apps make remote work seamless—but they’re also favorite targets for cybercriminals.
Limit access privileges: Give users only the data and systems access they need for their jobs.
Monitor suspicious activity: Use automated alerts for unauthorized downloads, logins from unfamiliar locations, or mass file deletions.
Encrypt cloud data: Apply encryption at rest (while stored) and in transit (while shared).
By managing permissions and encryption settings properly, you ensure your remote team collaborates safely.
Step 4: Train Your Employees to Recognize Threats
Technology can’t protect your business alone—your people are your first defense.
Phishing simulation tests: Help employees identify deceptive emails before they click.
Ongoing security awareness training: Regular, engaging sessions keep cybersecurity top of mind.
Clear incident reporting process: Make sure staff know exactly how to report suspicious emails or activity.
Even the strongest firewall can’t fix a careless click. Empowered employees dramatically lower your exposure to ransomware and data breaches.
Step 5: Backups and Business Continuity
When (not if) something goes wrong, recovery speed determines your resilience.
Automated, off-site backups: Back up critical company data daily to secure cloud storage or a managed backup solution.
Test your recovery protocols: Periodic testing ensures recovery procedures actually work when needed.
Create a disaster recovery plan: Define roles, responsibilities, and communication plans for emergencies.
Regular backups not only protect your business from cyberattacks but also from system failures, accidental deletion, or natural disasters.
Common Questions from Business Owners
Q: How can I ensure my remote workers’ home networks are secure? A: Require strong, unique Wi-Fi passwords and WPA3 encryption. Encourage employees to separate personal and work devices on different Wi-Fi networks where possible.
Q: Aren’t remote security tools expensive? A: Not necessarily. Many solutions scale by user count, making them affordable for small to medium-sized businesses. Cloud-based management and outsourced IT services can reduce operational overhead.
Q: What’s the biggest cybersecurity risk for remote businesses? A: Human error remains number one—especially phishing attacks and weak passwords. That’s why employee training and MFA are critical foundations of your remote work security strategy.
How Farmhouse Networking Helps Strengthen Remote Security
At Farmhouse Networking, we help businesses across Oregon and beyond embrace remote work securely. Our team provides managed IT services, network monitoring, cybersecurity management, and employee training tailored to your business goals.
Here’s how we can help you stay secure while working remotely:
Comprehensive network and endpoint protection designed to prevent unauthorized access.
24/7 monitoring and response to detect threats in real time.
Cloud security audits to ensure collaboration tools meet compliance and security standards.
Custom remote work security plans aligned with your IT budget and risk profile.
We work closely with your internal IT staff or serve as your outsourced department—helping you focus on running your business, not worrying about cyber risks.
Take the Next Step Toward Secure Remote Work
Remote work can be safe, scalable, and sustainable—with the right security foundation. Whether you’re building your first remote team or managing a hybrid workforce, Farmhouse Networking has the expertise to protect your people, devices, and data.
Got a email from one of our co-managed IT / Tier3 / managed RMM clients that was having issues with DNS resolution. The network consists of a Synology NAS acting as Domain Controller / DNS Server and a VM on the Synology that runs the clients main application. Several of the workstations were having an issue where they could not browse to the IP address (\\192.168.0.11\sharename)of the application server at one time and could not browse to the UNC path (\\servername\sharename) of the same server on another day. First tried setting the external forwarders to Google DNS and the Forward Policy to Forward First, but the problem resurfaced. So we dug deeper into the DNS settings and found the following:
Stale DNS records break Synology name resolution—simple record cleanup fixes it
If you look closely the IP address of the server is 192.168.0.11 and the records for DNS servers associated with the domain above and below it point to servers outside the subnet of the application server (10.0.0.2). Upon further investigation this DNS server address was blocked by the firewall because it was an old IP address scheme that was no longer in use. The current good DNS server IP addresses are 192.168.40.10 and 192.168.0.10.
Turns out the stale DNS records were the problem. Made the needed changes to the DNS records and things are working great.
If your company needs a little extra help running the IT department, then contact us to setup a co-managed IT evaluation.
Farmhouse Networking’s zero trust security model prevents lateral movement
There has been a recent trend for companies to “negotiate” with the criminal terrorists behind wave of ransomware attacks across the world by paying the ransom. In a recent study some alarming statistics have been released:
Current Ransomware Stats
If Ransom is Paid: The global findings also show that only 8% of organizations manage to get back all of their data after paying a ransom, with 29% getting back no more than half of their data.
Cost of Ransom: The average ransom paid was $170,404. While $3.2 million was the highest payment out of those surveyed, the most common payment was $10,000. Ten organizations paid ransoms of $1 million or more.
Who is Paying the Ransom: The number of organizations that paid the ransom increased from 26% in 2020 to 32% in 2021.
The Brighter Side: While the number of organizations that experienced a ransomware attack fell from 51% of respondents surveyed in 2020 to 37% in 2021, and fewer organizations suffered data encryption as the result of a significant attack (54% in 2021 compared to 73% in 2020).
What is Being Done
There are now organizations trying to create a common framework to address this threat. The Institute for Security and Technology has created a Ransomware Task Force. This task force has been working to develop this framework and has published some guidance. Even though this is just the foundation work, it is good to see that efforts are being made.
If your company is worried about the threat of ransomware, then contact us for assistance setting up a multiple layer approach to security.
And God will generously provide all you need. Then you will always have everything you need and plenty left over to share with others. As the Scriptures say,
“They share freely and give generously to the poor. Their good deeds will be remembered forever.”
For God is the one who provides seed for the farmer and then bread to eat. In the same way, he will provide and increase your resources and then produce a great harvest of generosity in you. - 2 Corinthians 9:8-10
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.