To add a user to the Hyper-V Administrators group, you must already have administrative privileges on the host machine. This process allows standard users to manage virtual machines without giving them full system administrator access.
(Replace “UserName” with the actual account name or “Domain\UserName” for domain accounts).
Option 2: Use Command Prompt
Run Command Prompt as an Administrator and use this syntax:
cmd
net localgroup “Hyper-V Administrators” “UserName” /add
Note: Group names are localized; if your Windows installation is not in English, use net localgroup to find the exact name of the Hyper-V group on your system.
Option 3: Use Computer Management (Graphical)
This is the most common method for Windows 10, 11, and Windows Server users.
When a client uses Google Workspace and needs their team to access Shared Drives from Windows workstations, we use a standardized PowerShell deployment script. This article walks through what the script does, how to use it, and what the end-user experience looks like.
Prerequisites
Before running the script, make sure the following are in place:
Google Drive for Desktop must be installed on the workstation. Download it from https://dl.google.com/drive-file-stream/GoogleDriveSetup.exe and run it before launching the script. The script will check for the installation and exit if it’s not found.
Administrator access on the target machine. The script uses #Requires -RunAsAdministrator and will not run without elevation.
User accounts must already exist on the machine. The script reads existing profiles from C:\Users and lets you choose which ones to target.
What the Script Does
The script (Ultrex-Deploy-GoogleDrive.ps1) performs four steps:
Step 1: Verify Google Drive Installation
The script looks for C:\Program Files\Google\Drive File Stream\launch.bat. If it’s found, it moves on. If not, it displays the download link and exits so you can install it first and re-run.
Step 2: Configure Auto-Start
It adds a registry entry under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run so that Google Drive File Stream launches automatically when any user signs in. If the entry already exists, it skips this step.
Step 3: Create the Launcher Script
A VBScript file is created at C:\InstallSharedDrive\LaunchGoogleDrive.vbs. This is the logic behind the desktop shortcut. When executed, it:
Checks if GoogleDriveFS.exe is already running.
If not, launches it via launch.bat and waits up to 30 seconds for the mapped drive to appear.
If the drive is mounted, it opens it in File Explorer.
If the drive isn’t available (user hasn’t signed in yet), it displays a popup with step-by-step sign-in instructions directing them to the system tray icon.
The drive letter is configurable — the script prompts you at the start (defaults to G:).
Step 4: Deploy Desktop Shortcuts
Two shortcuts are placed on each selected user’s desktop:
Create Shared Drive — Uses the batch file icon. Runs the VBScript launcher, which starts Google Drive if needed and opens the mapped drive letter. This is the primary shortcut for users who need to reconnect or access their Shared Drive.
Google Drive — Uses the Google Drive icon. Simply launches Google Drive for Desktop. Useful if a user just needs to start the app or access settings.
Both shortcuts are also placed in C:\Users\Default\Desktop so that any future user accounts created on the machine will automatically receive them on first login.
The Script
Copy the entire block below and paste it into the RMM PowerShell terminal.
powershell
# Ultrex IT - Google Drive Shared Drive Deployment
#Requires -RunAsAdministrator
# --- CONFIGURATION -----------------------------------------------------------
$DriveLetter = Read-Host "Enter drive letter (default: G)"
if ([string]::IsNullOrWhiteSpace($DriveLetter)) { $DriveLetter = "G" }
$DriveLetter = $DriveLetter.TrimEnd(":", " ").ToUpper()
Write-Host ""
Write-Host "Available user profiles:" -ForegroundColor Cyan
$allProfiles = Get-ChildItem "C:\Users" -Directory |
Where-Object { $_.Name -notmatch '^(Public|Default|Default User|All Users)$' } |
Select-Object -ExpandProperty Name
$i = 0
foreach ($p in $allProfiles) {
$i++
Write-Host " $i. $p"
}
Write-Host ""
Write-Host "Enter user numbers separated by commas (e.g. 1,2,3)" -ForegroundColor Cyan
Write-Host "Or type 'all' to deploy to everyone" -ForegroundColor Cyan
$selection = Read-Host "Selection"
if ($selection -eq "all") {
$TargetUsers = $allProfiles
} else {
$indices = $selection -split "," | ForEach-Object { [int]$_.Trim() - 1 }
$TargetUsers = @()
foreach ($idx in $indices) {
if ($idx -ge 0 -and $idx -lt $allProfiles.Count) {
$TargetUsers += $allProfiles[$idx]
}
}
}
Write-Host ""
Write-Host "Deploying to: $($TargetUsers -join ', ')" -ForegroundColor Green
Write-Host "Drive letter: ${DriveLetter}:\" -ForegroundColor Green
Write-Host ""
# --- STEP 1: Install Google Drive for Desktop --------------------------------
Write-Host "--- Step 1: Google Drive for Desktop ---" -ForegroundColor Cyan
$driveExe = "C:\Program Files\Google\Drive File Stream\launch.bat"
if (Test-Path $driveExe) {
Write-Host " [OK] Google Drive for Desktop found" -ForegroundColor Green
} else {
Write-Host " [FAIL] Google Drive for Desktop is NOT installed" -ForegroundColor Red
Write-Host ""
Write-Host " Please install Google Drive for Desktop before running this script." -ForegroundColor Yellow
Write-Host " Download from: https://dl.google.com/drive-file-stream/GoogleDriveSetup.exe" -ForegroundColor Yellow
Write-Host ""
Read-Host " Press any key to exit..."
exit
}
Write-Host ""
# --- STEP 2: Ensure Google Drive auto-starts for all users -------------------
Write-Host "--- Step 2: Auto-Start Configuration ---" -ForegroundColor Cyan
$runKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
$existing = Get-ItemProperty $runKey -Name "GoogleDriveFS" -ErrorAction SilentlyContinue
if ($existing) {
Write-Host " [SKIP] Auto-start already configured" -ForegroundColor Yellow
} else {
try {
New-ItemProperty -Path $runKey -Name "GoogleDriveFS" `
-Value """C:\Program Files\Google\Drive File Stream\launch.bat""" `
-PropertyType String -Force | Out-Null
Write-Host " [OK] Auto-start enabled for all users" -ForegroundColor Green
} catch {
Write-Host " [WARN] Could not set auto-start: $($_.Exception.Message)" -ForegroundColor Yellow
}
}
Write-Host ""
# --- STEP 3: Create the launcher VBScript ------------------------------------
Write-Host "--- Step 3: Creating Launcher Script ---" -ForegroundColor Cyan
$launcherDir = "C:\InstallSharedDrive"
$launcherScript = "$launcherDir\LaunchGoogleDrive.vbs"
if (-not (Test-Path $launcherDir)) {
New-Item -Path $launcherDir -ItemType Directory -Force | Out-Null
}
$vbsContent = @"
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Check if Google Drive is already running
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set colProcesses = objWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'GoogleDriveFS.exe'")
If colProcesses.Count = 0 Then
driveExe = "C:\Program Files\Google\Drive File Stream\launch.bat"
If objFSO.FileExists(driveExe) Then
objShell.Run """" & driveExe & """", 0, False
WScript.Sleep 5000
attempts = 0
Do While Not objFSO.DriveExists("${DriveLetter}:") And attempts < 25
WScript.Sleep 1000
attempts = attempts + 1
Loop
Else
MsgBox "Google Drive is not installed." & vbCrLf & "Please contact Ultrex IT support.", vbExclamation, "Google Drive"
WScript.Quit
End If
End If
If objFSO.DriveExists("${DriveLetter}:") Then
objShell.Run "explorer.exe ${DriveLetter}:\"
Else
MsgBox "Google Drive is not ready yet." & vbCrLf & vbCrLf & "To sign in:" & vbCrLf & "1. Look for the Google Drive icon in the system tray (bottom right)" & vbCrLf & "2. Click it and sign in with your Google account" & vbCrLf & "3. Once signed in, click this shortcut again" & vbCrLf & vbCrLf & "Need help? Contact Ultrex IT.", vbExclamation, "Google Drive"
End If
"@
Set-Content -Path $launcherScript -Value $vbsContent -Force
Write-Host " [OK] Launcher script created at $launcherScript" -ForegroundColor Green
Write-Host ""
# --- STEP 4: Deploy shortcuts ------------------------------------------------
Write-Host "--- Step 4: Deploying Desktop Shortcuts ---" -ForegroundColor Cyan
$iconPath = "C:\Program Files\Google\Drive File Stream\drive_fs.ico"
if (-not (Test-Path $iconPath)) {
$found = Get-ChildItem "C:\Program Files\Google\Drive File Stream" -Filter "*.ico" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1
if ($found) { $iconPath = $found.FullName }
}
$desktops = @()
foreach ($user in $TargetUsers) {
$desktops += @{ Path = "C:\Users\$user\Desktop"; Name = $user }
}
$desktops += @{ Path = "C:\Users\Default\Desktop"; Name = "Default" }
foreach ($entry in $desktops) {
$desktop = $entry.Path
$displayName = $entry.Name
try {
if (-not (Test-Path $desktop)) {
New-Item -Path $desktop -ItemType Directory -Force | Out-Null
}
Remove-Item "$desktop\Google Drive G.lnk" -Force -ErrorAction SilentlyContinue
$wshShell = New-Object -ComObject WScript.Shell
$shortcut = $wshShell.CreateShortcut("$desktop\Create Shared Drive.lnk")
$shortcut.TargetPath = "wscript.exe"
$shortcut.Arguments = """$launcherScript"""
$shortcut.WorkingDirectory = $launcherDir
$shortcut.Description = "Launch Google Drive and open ${DriveLetter}:\"
$shortcut.IconLocation = "C:\Program Files\Google\Drive File Stream\launch.bat,0"
$shortcut.Save()
$shortcut2 = $wshShell.CreateShortcut("$desktop\Google Drive.lnk")
$shortcut2.TargetPath = "C:\Program Files\Google\Drive File Stream\launch.bat"
$shortcut2.Description = "Google Drive"
if (Test-Path $iconPath) {
$shortcut2.IconLocation = "$iconPath,0"
}
$shortcut2.Save()
Write-Host " [OK] $displayName" -ForegroundColor Green
} catch {
Write-Host " [FAIL] $displayName - $($_.Exception.Message)" -ForegroundColor Red
}
}
Write-Host ""
Write-Host "=== Deployment Complete ===" -ForegroundColor Cyan
Write-Host ""
Write-Host " Drive: ${DriveLetter}:\" -ForegroundColor Gray
Write-Host " Users: $($TargetUsers.Count) + Default profile" -ForegroundColor Gray
Write-Host " Auto-start: Enabled" -ForegroundColor Gray
Write-Host " Launcher: $launcherScript" -ForegroundColor Gray
Write-Host ""
Write-Host " Each user must sign in to Google Drive on first use." -ForegroundColor Yellow
Write-Host " They click the system tray icon and authenticate with their Google account." -ForegroundColor Yellow
Write-Host ""
Write-Host " Ultrex IT - deployment complete" -ForegroundColor Cyan
How to Run It
Confirm Google Drive for Desktop is already installed on the target machine. If not, push the installer first via RMM or install it manually during a remote session.
Open the RMM PowerShell terminal for the target device (e.g., Atera → Manage → Terminal → PowerShell).
Copy the entire contents of Ultrex-Deploy-GoogleDrive.ps1 and paste it into the RMM PowerShell session.
The script will prompt for two things directly in the terminal:
Drive letter — Press Enter to accept the default (G), or type a different letter if needed.
User selection — The script lists all user profiles on the machine. Enter the numbers separated by commas (e.g., 1,3,5,7) or type all to deploy to every profile.
The script runs through all four steps and reports success or failure for each user.
Example Session
Enter drive letter (default: G):
[Enter]
Available user profiles:
1. anniek
2. christinaw
3. davec
4. ginaa
5. jamesa
Enter user numbers separated by commas (e.g. 1,2,3)
Or type 'all' to deploy to everyone
Selection: all
Deploying to: anniek, christinaw, davec, ginaa, jamesa
Drive letter: G:\
--- Step 1: Google Drive for Desktop ---
[OK] Google Drive for Desktop found
--- Step 2: Auto-Start Configuration ---
[OK] Auto-start enabled for all users
--- Step 3: Creating Launcher Script ---
[OK] Launcher script created at C:\InstallSharedDrive\LaunchGoogleDrive.vbs
--- Step 4: Deploying Desktop Shortcuts ---
[OK] anniek
[OK] christinaw
[OK] davec
[OK] ginaa
[OK] jamesa
[OK] Default
=== Deployment Complete ===
End-User Experience
After deployment, each user will see two new icons on their desktop. Here’s what their first-time experience looks like:
User signs in to Windows.
Google Drive for Desktop auto-launches (via the registry Run key).
The Google Drive system tray icon appears (bottom-right of the taskbar).
User clicks the “Create Shared Drive” shortcut on their desktop.
If they haven’t signed in to Google yet, a popup appears with instructions to click the system tray icon and authenticate with their Google account.
After signing in, the G: drive mounts automatically.
Clicking “Create Shared Drive” again opens G:\ in File Explorer.
From that point forward, Drive auto-starts on login, G: mounts automatically, and the shortcut just opens the drive.
Troubleshooting
Script exits immediately saying Google Drive is not installed Install Google Drive for Desktop first, then re-run the script. The installer can be downloaded from the URL shown in the error message.
Shortcuts appear but the drive letter never mounts The user needs to sign in to Google Drive. Have them click the Google Drive icon in the system tray and authenticate with their Google Workspace account.
Drive mounts as a different letter than expected Google Drive for Desktop assigns the drive letter automatically. If G: is already taken, it may use H: or another letter. You can re-run the script with the correct letter, or configure the drive letter in Google Drive’s settings (system tray icon → Preferences → Google Drive → Drive letter).
Shortcuts don’t appear for a new user account The script deploys to the Default profile, so new accounts should get the shortcuts automatically. If they don’t, re-run the script and select the new user.
Ultrex is a IT Service provider focused on small to mid-sized organizations that need dependable IT without hiring a full internal team. We provide:
User IT support
Cybersecurity and compliance (PCI/HIPAA/etc)
IT Trainings- on things like AI, Email Security, cloud storage- anything IT related
VoIP solutions
Cloud services management
Strategic IT planning and budgeting
We are proactive, user-focused, and relationship-driven. We do not just fix problems. We prevent ongoing issues and guide clients long term.
What Makes Someone a Good Fit
1. They Rely on Technology Daily
5 to 100 employees is ideal
Use Microsoft 365, cloud apps, or Google Workspace (or want to)
Businesses that operate M-F 8-5
At least 3 Staff who work on computers primarily
2. They Feel IT Pain
Weak response from current provider if on outsourced IT now
In house staff wearing multiple hats, not true IT, just trying to make things work
Reactive-only break-fix support (if they’re paying someone hourly, or having a non IT staffer muddle through it)
Frequent outages or recurring issues
No strategic IT plan
Cost fluctuates with every ticket or call-in. Projects that cost extra
Feeling like current IT is just trying to sell them machines and extra services
3. They Want a Partner, Not a Vendor
Open to guidance
Want structure, documentation, and standards
Willing to listen to input and advice
Red Flags – Poor Fit
Only want the cheapest option / Only talking about price
Refuse to invest in themselves
Need 24/7 or after hours support
Everyone talks about needing fast response times, but when defined, is it within our SLA’s?
Have changed IT providers more than 2 times in the last 5 years
Have internal IT staff who see us as a threat instead of support
Questions to Ask
About Their Current Situation
Who handles your IT today?
What frustrates you most about your current setup?
What gets in the way of your staff doing their best work?
When was your last major outage?
How do you handle cybersecurity today?
Is there a machine that if it broke, you’d lose your efforts? Do you know for sure your backups are in a good spot?
What sort of projects or changes would you want to do on if IT was a fixed cost?
What would one day of downtime cost you? Is it worth spending money to proactively avoid that?
How to Position Ultrex
Lead with outcomes, not tools.
Instead of: “We provide managed IT.”
Say things like: “We help you minimize downtime, train and support your staff, and plan technology so it supports growth instead of slowing you down.”
Focus on:
Flexibility (Not being one size fits all)
Strategy
Ease of mind- just having someone you can call, no added cost
Long-term partnership
Closing Notes:
You are not selling just IT support. You are selling peace of mind- business owners who don’t have to manage every piece, but can leave us to help their team.
The right client feels relief during the conversation. The wrong client argues about price before understanding the offering.
Pricing starts at 100 per supported staffer per month. Multiplier of .5x – 2.5x depending on variables once we do the in-person sales visit. (To account for things like pending projects, staff IT comfort levels, legacy software, environment complexity etc).
We specialize in 501c3 NonProfits. Explain we are managed by a former church staffer who loves supporting nonprofits most, if you’re talking to one.
Find the pain. Quantify the risk. Position Ultrex IT as the proactive solution.
THE PROCESS:
Find potential new client
Go to www.Consulting.ultrex.com and book a 1 hour in person apt with me. Put in the client info, not yours, since they’ll get the confirmation and follow up emails. Make sure you put in the full address and contact info- since that’s where I’ll go, and the number I’ll call if there’s a cancellation or reschedule request. On the “what are we getting together for” line, it’s important you know the client gets what you put there. Please put a – and your initials at the end of the line, so I know what account rep booked the apt.
Then, I do my research based on the client email you provide. I’ll arrive on the day of the apt knowing all I can about the client so I can be of most use.
After the visit, I’ll write a bid, and send it to you to then present to the client. If you’d like me at the presentation meeting, just book me again. Do not commit to any timeline for onboarding, please leave all non-financial discussions between me and the client. The onboarding fee is at your discretion. Edits to the contract? Just email me and I’ll update and send you new ones as fast as possible.
If you paste this into admin powershell, it disables copilot inside of MS365 installed apps. Doesn’t change apps online, or the ability to use other AI’s, even copilot website, BUT it does block the copilot add on items in all installed office apps (Being used for PCA here shortly)
Fixing Blank “Save As” Dialog Window in Adobe Acrobat
Issue
From ticket #5088 – When using Save As in Adobe Acrobat, the dialog box may appear blank, preventing you from saving the file as another name in another location. This issue can occur on both Windows and macOS.
Cause
Adobe Acrobat attempts to “display online storage options” during the save process. A preference setting can cause the dialog to render incorrectly.