Files
claudetools/clients/glaztech/README.md

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