452 lines
13 KiB
Markdown
452 lines
13 KiB
Markdown
# Glaztech PDF Preview Fix
|
|
|
|
**Client:** Glaztech Industries
|
|
**Issue:** Windows 10/11 PDF preview failures after security updates
|
|
**Root Cause:** KB5066791 and KB5066835 security updates add Mark of the Web (MOTW) to files from network shares
|
|
**Impact:** Users cannot preview PDFs in Windows Explorer from network locations
|
|
|
|
---
|
|
|
|
## Problem Summary
|
|
|
|
Recent Windows security updates (KB5066791, KB5066835) changed how Windows handles files downloaded from network shares. These files now receive a "Zone.Identifier" alternate data stream (Mark of the Web) that blocks preview functionality as a security measure.
|
|
|
|
**Symptoms:**
|
|
- PDF files cannot be previewed in Windows Explorer Preview Pane
|
|
- Files may show "This file came from another computer and might be blocked"
|
|
- Right-click → Properties shows "Unblock" button
|
|
- Preview works after manually unblocking individual files
|
|
|
|
**Affected Systems:**
|
|
- Windows 10 (with KB5066791 or KB5066835)
|
|
- Windows 11 (with KB5066791 or KB5066835)
|
|
- Files accessed from network shares (UNC paths)
|
|
|
|
---
|
|
|
|
## Solution Overview
|
|
|
|
This solution provides **three deployment methods**:
|
|
|
|
1. **PowerShell Script** - Immediate fix, run on individual or bulk computers
|
|
2. **Group Policy (GPO)** - Permanent solution, automatic deployment
|
|
3. **GuruRMM** - MSP deployment via RMM platform
|
|
|
|
All methods configure:
|
|
- ✅ Unblock existing PDF files (remove Zone.Identifier)
|
|
- ✅ Add Glaztech networks to trusted Intranet zone
|
|
- ✅ Disable SmartScreen for internal resources
|
|
- ✅ Enable PDF preview handlers
|
|
|
|
---
|
|
|
|
## Quick Start
|
|
|
|
### For IT Administrators (Recommended)
|
|
|
|
**Option 1: Deploy via GuruRMM** (Fastest for multiple computers)
|
|
```powershell
|
|
cd D:\ClaudeTools\clients\glaztech
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -UseGuruRMM
|
|
# Upload generated script to GuruRMM dashboard
|
|
# Target: Glaztech Industries (Client ID: d857708c-5713-4ee5-a314-679f86d2f9f9)
|
|
```
|
|
|
|
**Option 2: Configure Group Policy** (Best for permanent fix)
|
|
- See: `GPO-Configuration-Guide.md`
|
|
- Creates automatic fix for all current and future computers
|
|
|
|
**Option 3: PowerShell Remoting** (Good for AD environments)
|
|
```powershell
|
|
$Computers = @("PC001", "PC002", "PC003")
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -ComputerNames $Computers
|
|
```
|
|
|
|
### For End Users (Individual Computer)
|
|
|
|
1. Download: `Fix-PDFPreview-Glaztech.ps1`
|
|
2. Right-click → **Run with PowerShell**
|
|
3. Restart Windows Explorer when prompted
|
|
|
|
---
|
|
|
|
## Files Included
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `Fix-PDFPreview-Glaztech.ps1` | Main fix script - runs on individual computer |
|
|
| `Deploy-PDFFix-BulkRemote.ps1` | Bulk deployment script - runs on multiple computers remotely |
|
|
| `GPO-Configuration-Guide.md` | Group Policy configuration instructions |
|
|
| `README.md` | This file - overview and usage instructions |
|
|
|
|
---
|
|
|
|
## Detailed Usage
|
|
|
|
### Script 1: Fix-PDFPreview-Glaztech.ps1
|
|
|
|
**Purpose:** Fixes PDF preview on a single computer
|
|
|
|
**Basic Usage:**
|
|
```powershell
|
|
# Run with defaults (scans user folders, configures Glaztech network)
|
|
.\Fix-PDFPreview-Glaztech.ps1
|
|
```
|
|
|
|
**Advanced Usage:**
|
|
```powershell
|
|
# Specify additional file server paths
|
|
.\Fix-PDFPreview-Glaztech.ps1 -UnblockPaths "\\fileserver01\shared", "\\192.168.1.50\documents"
|
|
|
|
# Add specific file servers to trusted zone
|
|
.\Fix-PDFPreview-Glaztech.ps1 -ServerNames "fileserver01", "192.168.1.50", "glaztech-nas"
|
|
|
|
# Test mode (see what would change without making changes)
|
|
.\Fix-PDFPreview-Glaztech.ps1 -WhatIf
|
|
```
|
|
|
|
**What It Does:**
|
|
1. Scans Desktop, Downloads, Documents for PDFs
|
|
2. Removes Zone.Identifier stream from all PDFs found
|
|
3. Adds `glaztech.com` and `*.glaztech.com` to Intranet zone
|
|
4. Adds IP ranges `192.168.0.*` through `192.168.9.*` to Intranet zone
|
|
5. Adds specified servers (if provided) to Intranet zone
|
|
6. Enables PDF preview handlers in Windows Explorer
|
|
7. Disables SmartScreen for Intranet zone
|
|
8. Creates log file at `C:\Temp\Glaztech-PDF-Fix.log`
|
|
|
|
**Requirements:**
|
|
- Windows 10 or Windows 11
|
|
- PowerShell 5.1 or higher
|
|
- Administrator privileges
|
|
|
|
---
|
|
|
|
### Script 2: Deploy-PDFFix-BulkRemote.ps1
|
|
|
|
**Purpose:** Deploy fix to multiple computers remotely
|
|
|
|
**Method A: PowerShell Remoting**
|
|
```powershell
|
|
# Deploy to specific computers
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -ComputerNames "PC001","PC002","PC003"
|
|
|
|
# Deploy to computers from file
|
|
$Computers = Get-Content "computers.txt"
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -ComputerNames $Computers
|
|
|
|
# Deploy to all computers in AD OU
|
|
$Computers = Get-ADComputer -Filter * -SearchBase "OU=Workstations,DC=glaztech,DC=com" | Select -ExpandProperty Name
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -ComputerNames $Computers
|
|
|
|
# With specific servers and paths
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -ComputerNames $Computers -ServerNames "fileserver01","192.168.1.50" -AdditionalPaths "\\fileserver01\shared"
|
|
```
|
|
|
|
**Method B: GuruRMM Deployment**
|
|
```powershell
|
|
# Generate GuruRMM script
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -UseGuruRMM
|
|
|
|
# Output: GuruRMM-Glaztech-PDF-Fix.ps1
|
|
# Upload to GuruRMM dashboard as PowerShell task
|
|
# Target: Glaztech Industries (Site: SLC - Salt Lake City)
|
|
```
|
|
|
|
**Requirements:**
|
|
- PowerShell remoting enabled on target computers
|
|
- Administrator credentials (or current user must be admin on targets)
|
|
- Network connectivity to target computers
|
|
|
|
**Output:**
|
|
- Console output showing progress
|
|
- CSV file: `deployment-results-YYYYMMDD-HHMMSS.csv`
|
|
- Individual log files on each computer: `C:\Temp\Glaztech-PDF-Fix.log`
|
|
|
|
---
|
|
|
|
## Configuration Details
|
|
|
|
### Networks Automatically Trusted
|
|
|
|
The script automatically adds these to the Intranet security zone:
|
|
|
|
**Domains:**
|
|
- `glaztech.com`
|
|
- `*.glaztech.com`
|
|
|
|
**IP Ranges (All 10 Glaztech Sites):**
|
|
- `192.168.0.*` (Site 1)
|
|
- `192.168.1.*` (Site 2)
|
|
- `192.168.2.*` (Site 3)
|
|
- `192.168.3.*` (Site 4)
|
|
- `192.168.4.*` (Site 5)
|
|
- `192.168.5.*` (Site 6)
|
|
- `192.168.6.*` (Site 7)
|
|
- `192.168.7.*` (Site 8)
|
|
- `192.168.8.*` (Site 9)
|
|
- `192.168.9.*` (Site 10)
|
|
|
|
### Additional Servers (To Be Added)
|
|
|
|
**TODO:** Update script parameters when file server details are available:
|
|
|
|
```powershell
|
|
# Example - add these parameters when deploying:
|
|
$ServerNames = @(
|
|
"fileserver01",
|
|
"192.168.1.50",
|
|
"glaztech-nas01",
|
|
"glaztech-sharepoint"
|
|
)
|
|
|
|
.\Fix-PDFPreview-Glaztech.ps1 -ServerNames $ServerNames
|
|
```
|
|
|
|
**Waiting on user to provide:**
|
|
- File server hostnames
|
|
- File server IP addresses
|
|
- SharePoint URLs (if applicable)
|
|
- NAS device names (if applicable)
|
|
|
|
---
|
|
|
|
## Deployment Strategy
|
|
|
|
### Phase 1: Pilot Testing (1-5 Computers)
|
|
|
|
1. **Select test computers** representing different sites/configurations
|
|
2. **Run script manually** on test computers:
|
|
```powershell
|
|
.\Fix-PDFPreview-Glaztech.ps1 -WhatIf # Preview changes
|
|
.\Fix-PDFPreview-Glaztech.ps1 # Apply changes
|
|
```
|
|
3. **Verify PDF preview works** on network shares
|
|
4. **Check for side effects** (ensure other functionality not affected)
|
|
5. **Review logs:** `C:\Temp\Glaztech-PDF-Fix.log`
|
|
|
|
### Phase 2: Bulk Deployment (All Computers)
|
|
|
|
**Option A: GuruRMM (Recommended)**
|
|
```powershell
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -UseGuruRMM
|
|
# Upload to GuruRMM
|
|
# Schedule during maintenance window
|
|
# Execute on all Glaztech computers
|
|
```
|
|
|
|
**Option B: PowerShell Remoting**
|
|
```powershell
|
|
# Get all computers from Active Directory
|
|
$AllComputers = Get-ADComputer -Filter {OperatingSystem -like "*Windows 10*" -or OperatingSystem -like "*Windows 11*"} -SearchBase "DC=glaztech,DC=com" | Select -ExpandProperty Name
|
|
|
|
# Deploy to all
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -ComputerNames $AllComputers
|
|
|
|
# Or deploy by site
|
|
$Site1Computers = Get-ADComputer -Filter * -SearchBase "OU=Site1,OU=Computers,DC=glaztech,DC=com" | Select -ExpandProperty Name
|
|
.\Deploy-PDFFix-BulkRemote.ps1 -ComputerNames $Site1Computers
|
|
```
|
|
|
|
### Phase 3: Group Policy (Long-Term Solution)
|
|
|
|
1. **Follow:** `GPO-Configuration-Guide.md`
|
|
2. **Create GPO:** "Glaztech - PDF Preview Fix"
|
|
3. **Link to OUs:** All computer OUs
|
|
4. **Test on pilot group first**
|
|
5. **Roll out to all OUs**
|
|
|
|
**Benefits of GPO:**
|
|
- Automatic deployment to new computers
|
|
- Consistent configuration across all systems
|
|
- Centrally managed and auditable
|
|
- Persists across Windows updates
|
|
|
|
---
|
|
|
|
## Verification
|
|
|
|
After deployment, verify the fix on affected computers:
|
|
|
|
1. **Check log file:**
|
|
```powershell
|
|
Get-Content C:\Temp\Glaztech-PDF-Fix.log
|
|
```
|
|
|
|
2. **Test PDF preview:**
|
|
- Open File Explorer
|
|
- Navigate to network share with PDFs (e.g., `\\fileserver\documents`)
|
|
- Select a PDF file
|
|
- Enable Preview Pane (View → Preview Pane)
|
|
- PDF should display in preview
|
|
|
|
3. **Verify zone configuration:**
|
|
```powershell
|
|
# Check if glaztech.com is in Intranet zone
|
|
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\com\glaztech"
|
|
|
|
# Check SmartScreen disabled for Intranet
|
|
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1" -Name "2702"
|
|
# Should return 0 (disabled)
|
|
```
|
|
|
|
4. **Check for Zone.Identifier on PDFs:**
|
|
```powershell
|
|
# Pick a PDF file
|
|
$PDFFile = "C:\Users\username\Desktop\test.pdf"
|
|
|
|
# Check for Zone.Identifier
|
|
Get-Item $PDFFile -Stream Zone.Identifier -ErrorAction SilentlyContinue
|
|
# Should return nothing (file is unblocked)
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Problem: Script execution blocked
|
|
|
|
**Error:** "Running scripts is disabled on this system"
|
|
|
|
**Solution:**
|
|
```powershell
|
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
```
|
|
|
|
### Problem: PDF preview still not working
|
|
|
|
**Possible Causes:**
|
|
1. Windows Explorer needs restart
|
|
```powershell
|
|
Stop-Process -Name explorer -Force
|
|
```
|
|
|
|
2. File server not in trusted zone
|
|
- Add server explicitly: `.\Fix-PDFPreview-Glaztech.ps1 -ServerNames "servername"`
|
|
|
|
3. PDF files still blocked
|
|
- Run script again to unblock new files
|
|
- Or manually unblock: `Unblock-File "\\server\share\file.pdf"`
|
|
|
|
4. PDF preview handler disabled
|
|
- Settings → Apps → Default apps → Choose default apps by file type
|
|
- Set `.pdf` to Adobe Acrobat or Microsoft Edge
|
|
|
|
### Problem: PowerShell remoting fails
|
|
|
|
**Error:** "WinRM cannot process the request"
|
|
|
|
**Solution:**
|
|
```powershell
|
|
# On target computer (or via GPO):
|
|
Enable-PSRemoting -Force
|
|
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force
|
|
```
|
|
|
|
### Problem: GuruRMM deployment fails
|
|
|
|
**Possible Causes:**
|
|
1. Script blocked by execution policy
|
|
- Ensure GuruRMM task uses: `-ExecutionPolicy Bypass`
|
|
|
|
2. Insufficient permissions
|
|
- GuruRMM should run as SYSTEM or local administrator
|
|
|
|
3. Network timeout
|
|
- Increase GuruRMM task timeout setting
|
|
|
|
---
|
|
|
|
## Rollback
|
|
|
|
If issues occur after applying the fix:
|
|
|
|
1. **Remove Intranet zone sites manually:**
|
|
```powershell
|
|
Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\com\glaztech" -Recurse -Force
|
|
```
|
|
|
|
2. **Re-enable SmartScreen for Intranet:**
|
|
```powershell
|
|
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1" -Name "2702" -Value 1
|
|
```
|
|
|
|
3. **Remove GPO (if deployed):**
|
|
- GPMC → Unlink or delete "Glaztech - PDF Preview Fix" GPO
|
|
- Force update: `gpupdate /force`
|
|
|
|
---
|
|
|
|
## Security Considerations
|
|
|
|
**What This Script Does:**
|
|
- ✅ Adds Glaztech internal networks to trusted zone (safe for internal resources)
|
|
- ✅ Disables SmartScreen for internal sites only (not Internet sites)
|
|
- ✅ Removes Zone.Identifier from files on trusted shares
|
|
- ✅ Does NOT disable Windows Defender or other security features
|
|
- ✅ Does NOT affect Internet security settings
|
|
|
|
**What Remains Protected:**
|
|
- Internet downloads still blocked by SmartScreen
|
|
- External sites not affected
|
|
- Windows Defender continues scanning files
|
|
- UAC prompts remain active
|
|
- Firewall rules unchanged
|
|
|
|
**Best Practices:**
|
|
- Only add trusted internal servers to Intranet zone
|
|
- Do NOT add external/Internet sites
|
|
- Review server list before deployment
|
|
- Monitor for unusual network activity
|
|
- Keep Windows Defender and antivirus enabled
|
|
|
|
---
|
|
|
|
## Support Information
|
|
|
|
**Client:** Glaztech Industries
|
|
**MSP:** AZ Computer Guru
|
|
**GuruRMM Client ID:** d857708c-5713-4ee5-a314-679f86d2f9f9
|
|
**GuruRMM Site:** SLC - Salt Lake City (Site ID: 290bd2ea-4af5-49c6-8863-c6d58c5a55de)
|
|
**GuruRMM API Key:** grmm_Qw64eawPBjnMdwN5UmDGWoPlqwvjM7lI
|
|
|
|
**Domain:** glaztech.com
|
|
**Network Ranges:** 192.168.0.0/24 through 192.168.9.0/24 (10 sites)
|
|
|
|
**Script Location:** `D:\ClaudeTools\clients\glaztech\`
|
|
**Created:** 2026-01-27
|
|
|
|
**Contact:**
|
|
- For urgent issues: Check GuruRMM ticket system
|
|
- For questions: AZ Computer Guru support
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
1. ✅ **Pilot test** - Deploy to 1-5 test computers
|
|
2. ⏳ **Get server details** - Request file server names/IPs from local IT
|
|
3. ⏳ **Update script** - Add servers to script parameters
|
|
4. ⏳ **Bulk deploy** - Use GuruRMM or PowerShell remoting
|
|
5. ⏳ **Configure GPO** - Set up permanent solution
|
|
6. ⏳ **Document** - Record which computers are fixed
|
|
|
|
**Waiting on:**
|
|
- File server hostnames/IPs from Glaztech IT
|
|
- SharePoint URLs (if applicable)
|
|
- NAS device names (if applicable)
|
|
- Specific folder paths where PDFs are commonly accessed
|
|
|
|
---
|
|
|
|
## References
|
|
|
|
- [KB5066791 - Windows Security Update](https://support.microsoft.com/kb/5066791)
|
|
- [KB5066835 - Windows Security Update](https://support.microsoft.com/kb/5066835)
|
|
- [Mark of the Web (MOTW) - Microsoft Docs](https://docs.microsoft.com/en-us/windows/security/threat-protection/intelligence/mark-of-the-web)
|
|
- [Security Zones - Microsoft Docs](https://docs.microsoft.com/en-us/troubleshoot/browsers/how-to-add-sites-to-the-local-intranet-zone)
|
|
|
|
---
|
|
|
|
**Last Updated:** 2026-01-27
|