How to Convert Visio Shapes (VSSX/VSDX) into Draw.io Templates — The Clean and Reliable Method

How to Convert Visio Shapes (VSSX/VSDX) into Draw.io Templates — The Clean and Reliable Method

How to Convert Visio Stencils (VSSX/VSDX) into Draw.io Templates

 

Migrating from Microsoft Visio to draw.io (diagrams.net) is easier than most people think — especially when you need your old Visio stencil libraries (VSSX/VSDX).
However, many users struggle because importing Visio stencils directly into the draw.io desktop app often fails, breaks images, or produces unreadable shapes.

After a lot of trial and error, here is a method that works 100% reliably and keeps all visual details intact (including PNGs, geometry, labels, and grouping).

This guide explains the exact process for converting Visio shapes into fully functional draw.io templates (.xml / .mxlibrary).

Why This Method Works Best

Draw.io Desktop and the Web App behave differently. The desktop version cannot fully interpret Visio stencil metadata, but the online diagrams.net editor can.

So the trick is simple:

Use the Web App to interpret and convert the VSSX → then export as native Draw.io XML → use it in Desktop.

This avoids broken shapes, missing images, and formatting issues.

Step-by-Step Guide

1. Export your shapes from Visio as a VSSX file

  1. Open your stencil in Visio
  2. Go to File → Save As
  3. Select VSSX (Visio Stencil)
  4. Save the file somewhere on your computer
  5. Your icons are now packaged as a standard Visio stencil library.

2. Open diagrams.net (draw.io Web App)

Go to:

👉 https://app.diagrams.net/

The web version has better import logic for Visio files and handles VSSX decoding correctly.

 

3. Import the VSSX file

In diagrams.net:

  1. Go to File → Import → Device
  2. Select your .vssx file
  3. Wait a moment — the shapes will appear in the left sidebar

You should now see all your Visio stencils, with images and geometry preserved.

4. Export the stencil as a draw.io template

Now that diagrams.net has converted your Visio shapes:

  1. Go to File → Export as
  2. Choose XML
  3. Save the generated file
  4. This is your clean and fully compatible draw.io template

Draw.io Web exports the shapes in native mxGraph XML format, without any of the leftover Visio data that breaks compatibility.

5. Open the XML template in Draw.io Desktop

  1. Now open Draw.io Desktop, and:
  2. Go to File → Open Library
  3. Choose your exported .xml file

Optional: Save it as a .mxlibrary or add it to your custom templates

You now have a fully working, clean draw.io stencil set — based on your original Visio shapes.

Everything will work:

  • PNG/SVG images ✔
  • Shape geometry ✔
  • Aspect ratio ✔
  • Text fields ✔
  • Drag & drop ✔
  • Scaling ✔

This method is reliable for almost all Visio shapes and stencils, even large ones like:

Network equipment (Cisco, WatchGuard, Palo Alto, HP, Dell, etc.)

  • Rack elevations
  • Flowchart symbols
  • Custom corporate shapes
  • Security appliance front/rear views

Tips for Best Results

✔ Use the Web App for import (never Desktop)

The Web App has better Visio conversion.

✔ For large libraries, split them into smaller VSSX files

This speeds up import.

✔ After importing, rename your shapes inside the library

It makes them easier to use in draw.io.

✔ If a shape looks broken, re-export it from Visio

Some older VSD format shapes don’t convert well unless saved as VSSX.

 

Conclusion

 

If you’re switching from Visio to draw.io, you do not need to abandon your shape libraries.
By importing your VSSX stencils into app.diagrams.net, letting it process the shapes, and exporting the result as draw.io XML, you get a clean and compatible stencil set you can use forever.

This simple workflow saves hours of frustration — and allows Visio users to transition smoothly to the free, open, and cross-platform world of draw.io.

Automatically Clean Up Old Log Files with PowerShell

Automatically Clean Up Old Log Files with PowerShell

Automatically Clean Up Old Log Files with PowerShell

If you’re managing a web server or any system that generates log files, you’ll quickly notice that these files can grow very large over time. This article will show you how to automatically delete old log files using PowerShell, so you don’t have to manually clean them up.

Why Clean Up Log Files?

Log files are important for tracking system activity, but they can take up a lot of disk space. If you don’t clean them regularly, your server might run out of storage space. This script will automatically remove log files that are older than 30 days.

Prerequisites

Before you start, make sure you have:

  • A Windows server with PowerShell installed
  • Administrative rights to run PowerShell scripts
  • The folder path where your logs are stored (usually C:\inetpub\logs\LogFiles)

The PowerShell Script

Here’s a simple script that will automatically clean up old log files:

# Define the folder path where logs are stored
$LogFolder = "C:\inetpub\logs\LogFiles"

# Define how many days old files should be deleted (30 days)
$DaysOld = 30

# Define the folder where log files will be saved
$ScriptLogFolder = "C:\inetpub\logs\LogFiles\ScriptLogs"

# Create the log folder if it doesn't exist
if (!(Test-Path $ScriptLogFolder)) {
    New-Item -Path $ScriptLogFolder -ItemType Directory -Force
}

# Create today's log file name
$LogFile = "$ScriptLogFolder\logcleanup_$(Get-Date -Format 'yyyyMMdd').log"

# Function to write log messages
function Write-Log {
    param([string]$Message, [string]$Level = "INFO")
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $logEntry = "[$timestamp] [$Level] $Message"
    Write-Host $logEntry
    Add-Content -Path $LogFile -Value $logEntry -ErrorAction SilentlyContinue
}

try {
    Write-Log "Starting log cleanup process..." "INFO"
    
    # Check if the main log folder exists
    if (Test-Path $LogFolder) {
        # Find all files older than 30 days
        $OldFiles = Get-ChildItem -Path $LogFolder -Recurse -File -ErrorAction SilentlyContinue |
                   Where-Object { (Get-Date) - $_.CreationTime -gt (New-TimeSpan -Days $DaysOld) }
        
        if ($OldFiles.Count -gt 0) {
            Write-Log "Found $([int]$OldFiles.Count) old files to delete" "INFO"
            
            $DeletedCount = 0
            $ErrorCount = 0
            
            foreach ($File in $OldFiles) {
                try {
                    Remove-Item $File.FullName -Force -ErrorAction Stop
                    Write-Log "Deleted: $($File.FullName)" "INFO"
                    $DeletedCount++
                }
                catch {
                    Write-Log "Error deleting $($File.FullName): $($_.Exception.Message)" "ERROR"
                    $ErrorCount++
                }
            }
            
            Write-Log "Cleanup complete: Deleted $DeletedCount files, $ErrorCount errors" "INFO"
        }
        else {
            Write-Log "No old files found to delete" "INFO"
        }
    }
    else {
        Write-Log "Log folder does not exist: $LogFolder" "ERROR"
    }
    
    # Delete old log files (older than 30 days)
    $Today = Get-Date
    $OldLogFiles = Get-ChildItem -Path $ScriptLogFolder -File -ErrorAction SilentlyContinue |
                  Where-Object { ($Today - $_.CreationTime).Days -gt 30 }
    
    if ($OldLogFiles.Count -gt 0) {
        Write-Log "Deleting old log files (older than 30 days): $($OldLogFiles.Count) files" "INFO"
        $OldLogFiles | ForEach-Object {
            try {
                Remove-Item $_.FullName -Force -ErrorAction Stop
                Write-Log "Deleted log file: $($_.FullName)" "INFO"
            }
            catch {
                Write-Log "Error deleting log file $($_.FullName): $($_.Exception.Message)" "ERROR"
            }
        }
    }
    
    Write-Log "Log cleanup process completed!" "INFO"
}
catch {
    Write-Log "Unexpected error: $($_.Exception.Message)" "ERROR"
}

How to Use This Script

  1. Save the Script
    • Open Notepad or any text editor
    • Copy and paste the script above
    • Save the file with a .ps1 extension (for example: CleanLogs.ps1)
  2. Run the Script Manually
    • Open PowerShell as Administrator
    • Navigate to the folder where you saved the script
    • Run: .\CleanLogs.ps1
  3. Set Up Automatic Execution
    • Open Task Scheduler
    • Click Create Basic Task
    • Give it a name like Clean Log Files
    • Set the trigger to run daily at your preferred time
    • For the action, choose Start a program
    • Program/script: PowerShell.exe
    • Add arguments: -ExecutionPolicy Bypass -File “C:\Path\To\Your\CleanLogs.ps1”
    • Set the start folder to C:\ or leave it blank

What This Script Does

  • Finds old files: Looks for log files older than 30 days
  • Deletes them automatically: Removes the old files without asking
  • Creates logs: Saves what happened in a log file for later review
  • Cleans up old logs: Also removes old log files from the script itself (keeping only 30 days)

Important Notes:

  • Test first: Always test the script manually before setting it up automatically
  • Backup important logs: Make sure you don’t need any old log files for troubleshooting
  • Run as Administrator: The script needs administrator rights to delete files
  • Check permissions: Make sure the user running the task has permission to delete files in the log folders

Troubleshooting Tips

If the script doesn’t work when scheduled:

  • Check that you’re running it as Administrator
  • Make sure the path to the script is correct
  • Verify that the execution policy allows PowerShell scripts
  • Try running PowerShell with -ExecutionPolicy Bypass manually first

Conclusion

This simple PowerShell script helps you automatically manage your server’s disk space by cleaning up old log files. It’s perfect for beginners who want to keep their servers running smoothly without manual intervention. The script is safe, simple, and very effective at keeping your log directories clean.

Remember to test it first and always keep a backup of important logs before running automated cleanup scripts!

How to Install Kaspa Node on Windows

How to Install Kaspa Node on Windows

Complete kaspa-ng Setup + VCRUNTIME140.dll Fix (Windows)

Run your own Kaspa full node on Windows and support a truly
decentralized digital cash system — censorship-resistant, borderless
and essential for individual financial freedom.



kaspa-ng · Full Node

Windows 11 / 10
Beginner Friendly
< 24h Sync

 

Why your own node?

Trust yourself, not third parties.

Your node validates every transaction and block, keeps your wallet honest,
and contributes to Kaspa’s resilience as a neutral, global cash layer.

Freedom & Decentralization
A wide network of independent nodes makes it extremely hard to censor,
shut down or rewrite history — this is what turns Kaspa into
a public good for financial freedom.

 

1 Guide Overview

 

This guide walks you through a complete kaspa-ng setup for Windows,
including a 100% working fix for the VCRUNTIME140.dll error.
After a short one-time sync, your node will continuously verify the Kaspa ledger,
strengthening the decentralized cash infrastructure that nobody can switch off from above.

TL;DR: Install kaspa-ng → Fix runtime → Start & sync → (Optional) open port 16111 → Mine & validate freely.

  • Why run your own Kaspa full node?
  • Minimum hardware requirements (2025)
  • Step 1 – Download & install kaspa-ng
  • Step 2 – Fix VCRUNTIME140.dll error
  • Step 3 – Start & sync the node
  • Optional – Forward port 16111 (public node)
  • Common errors & quick fixes

2 Why Run Your Own Kaspa Full Node?

 

Running a Kaspa node (kaspad) gives you:

  • Self-sovereign verification – your wallet doesn’t rely on someone else’s server.
  • Stronger decentralization – every extra node makes censorship and shutdowns harder.
  • Secure mining & wallet validation – mine and transact against your own trusted view of the chain.
  • Privacy & freedom – fewer central points of failure and monitoring in the network.

With kaspa-ng, setup on Windows is no-code and usually
takes under 15 minutes (plus initial sync).

3 Minimum Hardware Requirements (2025)

 

ComponentMinimumRecommended
ProcessorIntel i7 (7th Gen, 4-core) or AMD equivalentIntel i7 (9th Gen, 8-core) or AMD equivalent
RAM8 GB16 GB
Storage100 GB free (SSD)100 GB SSD
Internet10 Mbps40 Mbps
Sync Time: Initial sync usually takes 6–24 hours,
depending on CPU & internet connection. You can keep using your PC while it syncs.

Port 16111: Forwarding this port makes your node visible to other peers
and improves overall Kaspa network health — a direct contribution to decentralization.

4 Step 1: Download & Install kaspa-ng

 

Install kaspa-ng on Windows 10/11
  1. Visit: kaspa-ng GitHub Releases.
  2. Download the latest .exe for Windows (e.g. kaspa-ng-v1.5.2-windows-x64.exe).
  3. Right-click the installer → “Run as Administrator”.
  4. Follow the installer wizard.

Done in ~2 minutes! After installation, kaspa-ng
will usually start automatically.

5 Step 2: Fix VCRUNTIME140.dll Error (100% Working)

Typical Error Message

Error: The code execution cannot proceed because
VCRUNTIME140_1.dll was not found.

Solution: Install Microsoft Visual C++ Redistributable

  1. Go to the official VC++ downloads:
    https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
  2. Download both installers:
    • vc_redist.x64.exe → 64-bit
    • vc_redist.x86.exe → 32-bit (if needed)
  3. Run both installers as Administrator.
  4. Restart your PC.
installing these redistributables fixes the
VCRUNTIME140_1.dll error permanently.

6 Step 3: Start & Sync the Node
Starting kaspa-ng
  1. Open kaspa-ng (desktop shortcut).
  2. Click “Start Node”.
  3. Wait until the status bar shows “Sync Complete”.

Pro Tip: Let your PC run overnight during the initial sync and
disable sleep mode. After that, daily syncs are quick.

7 Optional: Forward Port 16111 (Public Node)

 

If you want to contribute even more to Kaspa’s decentralization, you can
make your node reachable from the internet.

Basic Router Setup
  1. Open your router settings (often 192.168.1.1 in a browser).
  2. Find the Port Forwarding section.
  3. Set up a rule:
    • External: 16111 → Internal: 16111 (TCP/UDP)
    • Target: Your PC’s local IP (can be found via ipconfig in CMD).
Once configured, your node will show up on
kaspa.org/network and help route traffic for the global Kaspa graph.

8 Common Errors & Quick Fixes

 

ErrorQuick Fix
VCRUNTIME140_1.dll missingInstall the latest Microsoft Visual C++ Redistributable packages.Fix
Node won’t startRight-click kaspa-ng → Run as Administrator.Fix
Sync stuck at 99%Check internet connection and ensure port 16110 is open.Check
High CPU usageEnable “Low Priority Mode” in kaspa-ng settings.Fix

Ready to Run Your Kaspa Node?

Every node is one more independent voice verifying the truth of the ledger.
By running kaspa-ng, you help keep Kaspa an open, neutral and censorship-resistant
cash system for everyone.

 

Visio Alternative: draw.io Saves You Thousands

Visio Alternative: draw.io Saves You Thousands

Why Pay When You Can Get It for Free?

Microsoft Visio is powerful — but expensive. Whether you’re a freelancer in Switzerland, a startup founder, or part of a cost-conscious team, paying $5–$15 per user per month just to draw flowcharts feels outdated in 2025.

Enter draw.io – a completely free, open-source diagramming tool that rivals Visio in features, security, and collaboration. It’s available online for free at www.drawio.com (no signup required), or you can download and install the desktop app for offline use from GitHub. And yes — it imports .vsdx files natively.

Real talk: I’ve helped 50+ Swiss companies switch from Visio to draw.io. Most saved CHF 8,000–25,000/year in licensing costs — without losing a single feature they actually used.

draw.io vs Microsoft Visio: Head-to-Head

Featuredraw.ioMicrosoft Visio
PriceFree Forever (Online + Desktop)$5–$15/user/month
.vsdx Import/ExportNative SupportNative
Offline Desktop AppWindows, Mac, Linux – Free DownloadWindows Only
Real-time CollaborationGoogle Drive, OneDrive, ConfluenceTeams/OneDrive
AI Diagram GenerationBuilt-in (OpenAI)Limited
Self-hosted OptionDocker, On-premiseNo
Learning Curve5 minutesDays

 

Why Teams Are Switching (Real Use Cases)

🏦  Swiss Bank (Compliance)

Replaced Visio with draw.io in Confluence. Saved CHF 18,000/year and improved audit trails with version history in Git.

🚀  Zurich Startup

Used draw.io + Google Workspace. Onboarded 30 remote engineers in one afternoon — no license delays.

🏥  Healthcare Provider

Stored diagrams locally for HIPAA compliance. draw.io’s offline mode was a game-changer.

 

How to Get Started in 10 Minutes

Choose your way: Online for quick access or Desktop for offline power. Both are 100% free.

Option 1: Online (No Download Needed)

  1. Go to www.drawio.com — no signup needed.
  2. Drag your .vsdx file onto the canvas → instant import.
  3. Connect to your storage: Google Drive, OneDrive, GitHub, or local folder.
  4. Invite your team — real-time editing starts immediately.
  5. Export as PDF/SVG or keep editing forever — for free.

 

Option 2: Download & Install Desktop App (Offline-Ready)

Grab the latest version (v28.2.8) from GitHub. It’s free, open-source, and works on Windows, macOS, and Linux.

After install, open the app, import your files, and work offline – sync when online.

Pro Tip: The desktop app lets you work 100% offline and bypass corporate firewalls, while online mode is perfect for quick shares.

 

Advanced Features You’ll Actually Use

  • AI Diagram Generator: Type “user onboarding flow with auth” → get a full flowchart in seconds (online or desktop).
  • Custom Shape Libraries: Upload SVG icons or use 1000+ built-in AWS, Azure, Kubernetes icons.
  • Version Control: Store in Git → track every change like code.
  • Plugins: VS Code, Notion, Obsidian, and 20+ more.
# Example: Generate a diagram from text
POST https://api.diagrams.net/ai
{
  "prompt": "Create a C4 context diagram for an e-commerce platform with mobile app, payment gateway, and inventory system",
  "style": "modern"
}

Ready to Ditch Visio?

Join 10M+ users who diagram smarter — not harder. Online or desktop – your choice, all free.

Start Online for Free →
Download Desktop →

Final Verdict: Should You Switch?

Yes — if:

  • You’re tired of license management
  • You want offline + cloud flexibility
  • You collaborate across tools (Google, Atlassian, Git)
  • You value security and open-source

Stick with Visio — only if:

  • You need complex data-linked shapes from Excel (rare)
  • Your entire org is locked into Microsoft 365 Enterprise E5

For 99% of users? draw.io is not just “good enough” — it’s better. Go online or download today!

How to Hide ONLY the Shutdown Button in Windows Start Menu (Without Removing Restart or Sleep) – 2025 Guide

How to Hide ONLY the Shutdown Button in Windows Start Menu (Without Removing Restart or Sleep) – 2025 Guide

 Windows Start Menu – Shutdown hidden, but Restart and Sleep still visible

If you’ve ever used the built-in Group Policy to remove the Shutdown button, you know the problem:

Computer Configuration → Administrative Templates → Start Menu and Taskbar → “Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands”

When enabled, all power options disappear — including Restart and Sleep. That’s overkill for most use cases.

But what if you want to:

  • Prevent accidental shutdowns
  • Keep Restart and Sleep available
  • Apply it via GPO in enterprise environments?

You’re in the right place.

The Magic Registry Key: Hide Only Shutdown

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown
Value Name: value
Type: REG_DWORD
Data: 1

Set to 1 → Shutdown hidden
Set to 0 → Shutdown visible again

This key is officially supported in Windows 10 (1809+) and Windows 11 (all versions, including 24H2 as of November 2025).
Important: The HideShutDown key and the value DWORD already exist by default on modern Windows systems. You only need to modify the existing value to 1 — no need to create anything.

Method 1: Manual Registry Edit Single PC

Best for: Home users, testing, or one-off machines

Requires: Admin rights

  1. Press Win + R, type regedit, press Enter
  2. Navigate to:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown
  3. In the right pane, double-click the existing value (REG_DWORD)
  4. Set Value data: 1 → Click OK
  5. Restart Explorer or log out/in

Done! Open Start → Power menu → Shutdown is gone, but Restart and Sleep remain.

Pro Tip: Use Task Manager → End explorer.exe → Run explorer.exe to apply instantly.

Method 2: Deploy via Group Policy (GPO) Enterprise Ready

Best for: Domain-joined PCs, kiosks, labs, schools

  1. Open Group Policy Management (gpmc.msc)
  2. Create or edit a GPO linked to your target OU
  3. Go to:
    Computer Configuration → Preferences → Windows Settings → Registry
  4. Right-clickNew → Registry Item
FieldValue
ActionUpdate
HiveHKEY_LOCAL_MACHINE
Key PathSOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown
Value namevalue
Value typeREG_DWORD
Value data1

Apply GPO → Run gpupdate /force on clients

Result: Shutdown hidden domain-wide, no impact on Restart/Sleep.

Bonus: PowerShell One-Liner Automation

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" -Name "value" -Value 1 -Type REG_DWord -Force

Run as Administrator. Only modifies the existing value — no creation needed. Perfect for SCCM, Intune, or login scripts.

Common Questions (FAQ)

Do I need to create the key or value?

No. Both HideShutDown and the value DWORD already exist by default on Windows 10/11. Just change value to 1.

Will this break Windows Updates?

No. This is a supported PolicyManager key. Used by Microsoft in education and kiosk scenarios.

Does it work on Windows 11 24H2?

Yes. Tested and confirmed as of November 2025.

Can users bypass it?

Only with local admin rights and registry access. Standard users cannot override.

What about Hibernate?

Unaffected. Only Shutdown is hidden.

Final Thoughts

You now have a clean, supported, reversible way to hide only the Shutdown button in Windows — whether on one PC or 10,000.

  • No more forcing users into full power lockdowns.
  • No more accidental shutdowns on shared machines.
  • Full control, zero clutter.

 

Tested on: Windows 11 24H2, Windows 10 22H2

Have a better method? Found a bug? Drop a comment below — let’s keep Windows admin life smooth!