I was prompted to upgrade my Az modules.
I ran again and got the same error about a different package.
I sicced Copilot on it and it eventually managed to get it to update, but only after an hour of struggling and only by manually deleting the existing modules.
Details
🤖 Copilot CLI Session
[!NOTE]
- Session ID:
583b8ef4-2688-4abf-bf09-05780e6b4261
- Started: 4/9/2026, 3:05:33 PM
- Duration: 65m 50s
- Exported: 4/9/2026, 4:11:24 PM
⏱️ 3s
ℹ️ Info
Detected Azure DevOps repository. GitHub MCP server has been disabled. Use /mcp enable github-mcp-server to re-enable.
⏱️ 3s
⚠️ Warning
Failed to load 2 skills. Run /skills for more details.
⏱️ 14s
⚠️ Warning
MCP server 'ado' is taking longer than expected to connect.
⏱️ 14s
⚠️ Warning
MCP server 'kusto' is taking longer than expected to connect.
⏱️ 14s
⚠️ Warning
MCP server 'enghub' is taking longer than expected to connect.
⏱️ 14s
⚠️ Warning
MCP server 'playwright' is taking longer than expected to connect.
⏱️ 14s
⚠️ Warning
MCP server 'ev2' is taking longer than expected to connect.
⏱️ 14s
⚠️ Warning
MCP server 'workiq' is taking longer than expected to connect.
⏱️ 59s
👤 User
I keep trying to update Az PowerShell, but I keep getting failures. How to remedy?
Update-PSResource Az
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its Trusted value by running the
Set-PSResourceRepository cmdlet. Are you sure you want to install the PSResource from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
Update-PSResource: Unable to successfully install package 'Az.LogicApp': 'Cannot remove package path C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\Az.LogicApp\1.6.0. The previous package contents have been restored.'
Update-PSResource: Operation is not valid due to the current state of the object.
Update-PSResource: Package(s) 'Az' could not be installed from repository 'PSGallery'.
update-psresource az
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its Trusted value by running the
Set-PSResourceRepository cmdlet. Are you sure you want to install the PSResource from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
Update-PSResource: Unable to successfully install package 'Az.MachineLearning': 'Cannot remove package path C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\Az.MachineLearning\1.2.0. The previous package contents have been restored.'
Update-PSResource: Operation is not valid due to the current state of the object.
Update-PSResource: Package(s) 'Az' could not be installed from repository 'PSGallery'.
⏱️ 57s
ℹ️ Info
Environment loaded: 3 custom instructions, 9 MCP servers, 11 skills, 3 agents
⏱️ 1m 4s
💭 Reasoning
*The user is having trouble updating the Az PowerShell module. The error messages show two key issues:
- The modules are installed in a OneDrive-synced path (
C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\)
- OneDrive file locking is preventing the removal/replacement of old module files during the update
This is a well-known issue - OneDrive locks files and prevents PowerShell from deleting/replacing module folders during updates.
The remedy is straightforward - I can explain without needing to run tools.*
⏱️ 1m 8s
💬 Copilot
The problem is OneDrive file locking. Your modules are installed under:
C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\
OneDrive syncs and locks those files, preventing PowerShell from removing old versions during the update.
Remedies (pick one):
-
Pause OneDrive sync before updating:
- Right-click OneDrive tray icon → Pause syncing → run
Update-PSResource Az → resume sync.
-
Move your module path out of OneDrive by setting $env:PSModulePath to a non-OneDrive location, or install with -Scope AllUsers (requires admin):
Update-PSResource Az -Scope AllUsers
-
Close all PowerShell sessions except one (other sessions may hold file locks on loaded modules), pause OneDrive, then retry.
Also, to skip the trust prompt each time:
Set-PSResourceRepository -Name PSGallery -Trusted
⏱️ 2m 16s
👤 User
Let's do 1. Can you first enact the trust. Then, if possible, show me how to pause one drive on the CLI. Thanks.
⏱️ 2m 19s
💭 Reasoning
*The user wants me to:
- Set PSGallery as trusted
- Show how to pause OneDrive from the CLI
Let me do both.*
⏱️ 2m 32s
✅ powershell
Set PSGallery as trusted repository
Arguments
{
"command": "Set-PSResourceRepository -Name PSGallery -Trusted; Get-PSResourceRepository PSGallery",
"description": "Set PSGallery as trusted repository",
"initial_wait": 10
}
Name Uri Trusted Priority IsAllowedByPolicy
---- --- ------- -------- -----------------
PSGallery https://www.powershellgallery.com/api/v2 True 50 True
<exited with exit code 0>
⏱️ 2m 35s
💬 Copilot
✅ PSGallery is now trusted — no more prompts.
Pausing OneDrive from CLI — unfortunately there's no official CLI command for it. The closest approach:
# Stop OneDrive (effectively pauses sync)
Stop-Process -Name OneDrive
# Later, restart it
Start-Process "$env:LOCALAPPDATA\Microsoft\OneDrive\OneDrive.exe"
> ⚠️ This fully kills OneDrive rather than a graceful pause. The tray icon right-click → Pause syncing is cleaner, but there's no CLI equivalent.
Would you like me to stop OneDrive, run the Az update, then restart it?
⏱️ 2m 48s
👤 User
Yes
⏱️ 2m 54s
❌ powershell
Stop OneDrive and update Az module
Arguments
{
"command": "Stop-Process -Name OneDrive -ErrorAction SilentlyContinue; Start-Sleep -Seconds 2; Write-Host \"OneDrive stopped. Starting Az update...\"; Update-PSResource Az",
"description": "Stop OneDrive and update Az module",
"initial_wait": 120
}
Command not executed. The 'Stop-Process -Name' command is not allowed. Use 'Stop-Process -Id <PID>' with a specific process ID instead.
⏱️ 3m 0s
✅ powershell
Find OneDrive process ID
Arguments
{
"command": "Get-Process -Name OneDrive -ErrorAction SilentlyContinue | Select-Object Id, ProcessName",
"description": "Find OneDrive process ID",
"initial_wait": 10
}
Id ProcessName
-- -----------
24460 OneDrive
<exited with exit code 0>
⏱️ 5m 9s
✅ powershell
Stop OneDrive and update Az module
Arguments
{
"command": "Stop-Process -Id 24460; Start-Sleep -Seconds 2; Write-Host \"OneDrive stopped. Starting Az update...\"; Update-PSResource Az",
"description": "Stop OneDrive and update Az module",
"initial_wait": 120
}
OneDrive stopped. Starting Az update...
<command with shellId: 2 is still running after 120 seconds. The command is still running. Check the output above - if it looks like the command is waiting for input, use write_powershell to provide it. Otherwise, use read_powershell to continue waiting for output, or stop_powershell to stop it.>
⏱️ 5m 13s
💬 Copilot
Update is running — this can take a while since Az has many sub-modules. Waiting for it to finish...
⏱️ 5m 45s
✅ read_powershell
Waiting up to 120 seconds for command output
Arguments
{
"shellId": "2",
"delay": 120
}
17 lines
OneDrive stopped. Starting Az update...
Update-PSResource:
Line |
2 | … -Host "OneDrive stopped. Starting Az update..."; Update-PSResource Az
| ~~~~~~~~~~~~~~~~~~~~
| Unable to successfully install package 'Az.Security': 'Cannot remove package path C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\Az.Security\1.8.0. The previous package contents have been restored.'
Update-PSResource:
Line |
2 | … -Host "OneDrive stopped. Starting Az update..."; Update-PSResource Az
| ~~~~~~~~~~~~~~~~~~~~
| Operation is not valid due to the current state of the object.
Update-PSResource:
Line |
2 | … -Host "OneDrive stopped. Starting Az update..."; Update-PSResource Az
| ~~~~~~~~~~~~~~~~~~~~
| Package(s) 'Az' could not be installed from repository 'PSGallery'.
<command with id: 2 exited with exit code 0>
⏱️ 5m 45s
ℹ️ Notification
Shell "Stop OneDrive and update Az module" completed
⏱️ 5m 49s
💬 Copilot
Still failing — OneDrive likely left file locks even after the process stopped. Let me check if OneDrive is truly gone and try manually removing the problematic folder first.
⏱️ 5m 52s
✅ powershell
Check if OneDrive is still running
Arguments
{
"command": "Get-Process -Name OneDrive -ErrorAction SilentlyContinue | Select-Object Id, ProcessName",
"description": "Check if OneDrive is still running",
"initial_wait": 10
}
<exited with exit code 0>
⏱️ 18m 20s
✅ powershell
Try removing the locked module folder
Arguments
{
"command": "Remove-Item \"C:\\Users\\jaraco\\OneDrive - Microsoft\\Documents\\PowerShell\\Modules\\Az.Security\\1.8.0\" -Recurse -Force -ErrorAction Stop",
"description": "Try removing the locked module folder",
"initial_wait": 15
}
Removed 1 of 47 files [640.6 KB of 7.9 MB (0.0 MB/s) ]
<exited with exit code 0>
⏱️ 18m 26s
💬 Copilot
That worked. The issue was likely residual file locks that took a moment to release. Let me also clean the other previously-failed modules, then retry the update.
⏱️ 22m 19s
✅ powershell
Clean failed modules and retry Az update
Arguments
{
"command": "$basePath = \"C:\\Users\\jaraco\\OneDrive - Microsoft\\Documents\\PowerShell\\Modules\"\n# Clean the other two modules that failed earlier\n$failed = @(\"Az.LogicApp\\1.6.0\", \"Az.MachineLearning\\1.2.0\")\nforeach ($m in $failed) {\n $p = Join-Path $basePath $m\n if (Test-Path $p) { Remove-Item $p -Recurse -Force -ErrorAction SilentlyContinue; Write-Host \"Removed $m\" }\n else { Write-Host \"$m already gone\" }\n}\nWrite-Host \"Starting Az update...\"\nUpdate-PSResource Az",
"description": "Clean failed modules and retry Az update",
"initial_wait": 180
}
19 lines
Removed Az.LogicApp\1.6.0
Removed Az.MachineLearning\1.2.0
Starting Az update...
Update-PSResource:
Line |
11 | Update-PSResource Az
| ~~~~~~~~~~~~~~~~~~~~
| Unable to successfully install package 'Az.DataTransfer': 'Cannot remove package path C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\Az.DataTransfer\1.0.0. The previous package contents have been restored.'
Update-PSResource:
Line |
11 | Update-PSResource Az
| ~~~~~~~~~~~~~~~~~~~~
| Operation is not valid due to the current state of the object.
Update-PSResource:
Line |
11 | Update-PSResource Az
| ~~~~~~~~~~~~~~~~~~~~
| Package(s) 'Az' could not be installed from repository 'PSGallery'.
<exited with exit code 0>
⏱️ 22m 23s
💭 Reasoning
*It keeps failing on different modules each time. The approach of fixing one at a time is a whack-a-mole game. The root issue is that the modules are installed in a OneDrive-synced folder, and even with OneDrive stopped, there are lingering issues with file removal in that path.
A better approach would be to:
- Uninstall Az completely from the OneDrive path
- Reinstall to AllUsers scope or a non-OneDrive path
Or alternatively, just keep retrying - each time it clears one more module. But that's tedious.
Let me try a different approach - remove ALL old Az.* module folders first, then do the update. Or better yet, install with -Scope AllUsers to avoid the OneDrive path entirely.*
⏱️ 22m 29s
💬 Copilot
It's a whack-a-mole — each run fails on a different sub-module. Let me take a different approach: remove all old Az.* module versions at once, then reinstall cleanly.
⏱️ 23m 58s
✅ powershell
Bulk remove all old Az modules
Arguments
{
"command": "$basePath = \"C:\\Users\\jaraco\\OneDrive - Microsoft\\Documents\\PowerShell\\Modules\"\n$azModules = Get-ChildItem $basePath -Directory -Filter \"Az.*\" -ErrorAction SilentlyContinue\nWrite-Host \"Found $($azModules.Count) Az modules to clean\"\n$errors = 0\nforeach ($mod in $azModules) {\n try {\n Remove-Item $mod.FullName -Recurse -Force -ErrorAction Stop\n Write-Host \"Removed $($mod.Name)\"\n } catch {\n $errors++\n Write-Host \"FAILED: $($mod.Name) - $_\"\n }\n}\n# Also remove the Az meta-module itself\n$azMeta = Join-Path $basePath \"Az\"\nif (Test-Path $azMeta) { Remove-Item $azMeta -Recurse -Force -ErrorAction SilentlyContinue; Write-Host \"Removed Az\" }\nWrite-Host \"`nDone. Errors: $errors\"",
"description": "Bulk remove all old Az modules",
"initial_wait": 60
}
8 lines
Found 95 Az modules to clean
Removed 1 of 7 files [30.9 KB of 437.8 KB (0.0 MB/s) ]Removed Az
Removed 85 of 149 files [30.4 MB of 57.5 MB (155.9 MB/s) ]Removed Az.Accounts
Removed 29 of 33 files [2.8 MB of 2.9 MB (23.3 MB/s) ]Removed Az.Advisor
Removed Az.Aks
Removed Az.AnalysisServices
Removed 41 of 40 files [
<command with shellId: 6 is still running after 60 seconds. The command is still running. Check the output above - if it looks like the command is waiting for input, use write_powershell to provide it. Otherwise, use read_powershell to continue waiting for output, or stop_powershell to stop it.>
⏱️ 25m 2s
✅ read_powershell
Waiting up to 60 seconds for command output
Arguments
{
"delay": 60,
"shellId": "6"
}
8 lines
Found 95 Az modules to clean
Removed 1 of 7 files [30.9 KB of 437.8 KB (0.0 MB/s) ]Removed Az
Removed 85 of 149 files [30.4 MB of 57.5 MB (155.9 MB/s) ]Removed Az.Accounts
Removed 29 of 33 files [2.8 MB of 2.9 MB (23.3 MB/s) ]Removed Az.Advisor
Removed Az.Aks
Removed Az.AnalysisServices
Removed 41 of 40 files [
<command with shellId: 6 is still running after 60 seconds. The command is still running. Check the output above - if it looks like the command is waiting for input, use write_powershell to provide it. Otherwise, use read_powershell to continue waiting for output, or stop_powershell to stop it.>
⏱️ 27m 8s
✅ read_powershell
Waiting up to 120 seconds for command output
Arguments
{
"delay": 120,
"shellId": "6"
}
8 lines
Found 95 Az modules to clean
Removed 1 of 7 files [30.9 KB of 437.8 KB (0.0 MB/s) ]Removed Az
Removed 85 of 149 files [30.4 MB of 57.5 MB (155.9 MB/s) ]Removed Az.Accounts
Removed 29 of 33 files [2.8 MB of 2.9 MB (23.3 MB/s) ]Removed Az.Advisor
Removed Az.Aks
Removed Az.AnalysisServices
Removed 41 of 40 files [
<command with shellId: 6 is still running after 120 seconds. The command is still running. Check the output above - if it looks like the command is waiting for input, use write_powershell to provide it. Otherwise, use read_powershell to continue waiting for output, or stop_powershell to stop it.>
⏱️ 27m 11s
💭 Reasoning
The removal seems to be stuck, likely OneDrive files are being recalled from the cloud or there's something else going on. Let me wait more or try a different approach. Let me wait a bit longer.
⏱️ 27m 12s
💬 Copilot
The deletions are slow — OneDrive cloud-tiered files need to be recalled before deletion. Let me keep waiting...
⏱️ 32m 13s
✅ read_powershell
Waiting up to 300 seconds for command output
Arguments
{
"delay": 300,
"shellId": "6"
}
8 lines
Found 95 Az modules to clean
Removed 1 of 7 files [30.9 KB of 437.8 KB (0.0 MB/s) ]Removed Az
Removed 85 of 149 files [30.4 MB of 57.5 MB (155.9 MB/s) ]Removed Az.Accounts
Removed 29 of 33 files [2.8 MB of 2.9 MB (23.3 MB/s) ]Removed Az.Advisor
Removed Az.Aks
Removed Az.AnalysisServices
Removed 41 of 40 files [
<command with shellId: 6 is still running after 300 seconds. The command is still running. Check the output above - if it looks like the command is waiting for input, use write_powershell to provide it. Otherwise, use read_powershell to continue waiting for output, or stop_powershell to stop it.>
⏱️ 32m 17s
💭 Reasoning
*This is stuck. The OneDrive files are cloud-tiered and need to be downloaded before they can be deleted. This is going to take a very long time. Let me stop this and take a completely different approach.
The better approach is to just install Az to AllUsers scope (which goes to C:\Program Files\PowerShell\Modules instead of the OneDrive path), or install fresh to a non-OneDrive path.
Let me stop this and suggest a cleaner approach.*
⏱️ 32m 19s
💬 Copilot
This is stuck on cloud-tiered file recalls. Let me stop this and take a cleaner approach.
⏱️ 32m 20s
✅ stop_powershell
Arguments
<command with id: 6 stopped>
⏱️ 38m 27s
✅ ask_user
The OneDrive-synced folder is fighting us — even with One...
Arguments
{
"question": "The OneDrive-synced folder is fighting us — even with OneDrive stopped, cloud-tiered files need recall before deletion, which is extremely slow. A much cleaner fix is to install Az to the **AllUsers** scope (`C:\\Program Files\\PowerShell\\Modules`) which bypasses OneDrive entirely. This requires an elevated (admin) PowerShell. Can I try that instead?",
"choices": [
"Yes, install to AllUsers scope (Recommended)",
"No, keep trying with the OneDrive path"
]
}
User selected: No, keep trying with the OneDrive path
⏱️ 38m 31s
💭 Reasoning
*The user wants to keep trying with the OneDrive path. Let me think of a better approach for this.
The issue is that OneDrive cloud-tiered files are slow to delete. One approach is to use attrib to remove the cloud-tiered attribute, or use a different deletion method.
Actually, let me think about this differently. The user could:
-
Run Update-PSResource Az repeatedly - each time it might get past a different module
-
Try using -SkipDependencyCheck or other flags
-
Try deleting with robocopy which can be faster for mass deletion
-
Set the files to "Always keep on this device" first
-
Or just reinstall with the -Reinstall flag to overwrite the problematic modules
The real long-term solution though is to move the PowerShell module path away from OneDrive entirely—either by changing where Documents points or by configuring a separate modules folder outside of cloud sync. Using robocopy could also quickly clear out the existing folders if needed.*
⏱️ 38m 43s
💬 Copilot
OK, let's work around OneDrive. Let me try a loop approach — each run should progress past previously-failing modules. First, let me clean the specific blocker and retry.
⏱️ 38m 47s
✅ powershell
Check remaining Az modules
Arguments
{
"command": "$basePath = \"C:\\Users\\jaraco\\OneDrive - Microsoft\\Documents\\PowerShell\\Modules\"\n# Check what Az modules remain\n$remaining = Get-ChildItem $basePath -Directory -Filter \"Az.*\" -ErrorAction SilentlyContinue\nWrite-Host \"$($remaining.Count) Az.* modules remaining\"",
"description": "Check remaining Az modules",
"initial_wait": 15
}
0 Az.* modules remaining
<exited with exit code 0>
⏱️ 38m 49s
💭 Reasoning
Oh interesting - the bulk removal actually did clear everything, it was just slow to report. Now there are 0 Az. modules left. Let's try the install now. Since they're all gone, we should do Install-PSResource Az instead of Update-PSResource Az.*
⏱️ 38m 51s
💬 Copilot
The earlier cleanup actually succeeded — all old Az modules are gone! Let me do a fresh install now.
⏱️ 41m 1s
✅ powershell
Fresh install of Az module
Arguments
{
"command": "Install-PSResource Az",
"description": "Fresh install of Az module",
"initial_wait": 300
}
<exited with exit code 0>
⏱️ 41m 45s
✅ powershell
Verify Az installed and restart OneDrive
Arguments
{
"command": "Get-InstalledPSResource Az | Select-Object Name, Version; Start-Process \"$env:LOCALAPPDATA\\Microsoft\\OneDrive\\OneDrive.exe\"; Write-Host \"OneDrive restarted.\"",
"description": "Verify Az installed and restart OneDrive",
"initial_wait": 15
}
OneDrive restarted.
Name Version
---- -------
Az 15.5.0
<exited with exit code 0>
⏱️ 41m 49s
💬 Copilot
✅ Done! Az 15.5.0 installed successfully, and OneDrive has been restarted.
The earlier bulk cleanup worked (just slow to report due to cloud-tiered file recalls), so the fresh install went through cleanly.
⏱️ 60m 16s
ℹ️ Info
Copied last response to clipboard.
⏱️ 64m 46s
ℹ️ Info
Copied last response to clipboard.
Generated by GitHub Copilot CLI
I'm not even sure it succeeded.
It was tempted to abandon the existing install and abandon best practices and install system-wide, leaving the old version to linger in my OneDrive (and presumably other machines).
It would be nice if there was a reliable way to upgrade Az PowerShell, even if it's installed user-local. It wasn't my decision for PowerShell to put these modules in the OneDrive, though I did advise against it very early in the product offering. Now that it's established that way, we'd do best to help our customers deal with the challenges this design brings.
Description
I was prompted to upgrade my Az modules.
I tried to update the Az modules, but it failed with:
I ran again and got the same error about a different package.
I sicced Copilot on it and it eventually managed to get it to update, but only after an hour of struggling and only by manually deleting the existing modules.
Details
🤖 Copilot CLI Session
⏱️ 3s
ℹ️ Info
Detected Azure DevOps repository. GitHub MCP server has been disabled. Use /mcp enable github-mcp-server to re-enable.
⏱️ 3s
Failed to load 2 skills. Run /skills for more details.
⏱️ 14s
MCP server 'ado' is taking longer than expected to connect.
⏱️ 14s
MCP server 'kusto' is taking longer than expected to connect.
⏱️ 14s
MCP server 'enghub' is taking longer than expected to connect.
⏱️ 14s
MCP server 'playwright' is taking longer than expected to connect.
⏱️ 14s
MCP server 'ev2' is taking longer than expected to connect.
⏱️ 14s
MCP server 'workiq' is taking longer than expected to connect.
⏱️ 59s
👤 User
I keep trying to update Az PowerShell, but I keep getting failures. How to remedy?
Update-PSResource Az
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its Trusted value by running the
Set-PSResourceRepository cmdlet. Are you sure you want to install the PSResource from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
Update-PSResource: Unable to successfully install package 'Az.LogicApp': 'Cannot remove package path C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\Az.LogicApp\1.6.0. The previous package contents have been restored.'
Update-PSResource: Operation is not valid due to the current state of the object.
Update-PSResource: Package(s) 'Az' could not be installed from repository 'PSGallery'.
update-psresource az
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its Trusted value by running the
Set-PSResourceRepository cmdlet. Are you sure you want to install the PSResource from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
Update-PSResource: Unable to successfully install package 'Az.MachineLearning': 'Cannot remove package path C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\Az.MachineLearning\1.2.0. The previous package contents have been restored.'
Update-PSResource: Operation is not valid due to the current state of the object.
Update-PSResource: Package(s) 'Az' could not be installed from repository 'PSGallery'.
⏱️ 57s
ℹ️ Info
Environment loaded: 3 custom instructions, 9 MCP servers, 11 skills, 3 agents
⏱️ 1m 4s
💭 Reasoning
*The user is having trouble updating the Az PowerShell module. The error messages show two key issues:
C:\Users\jaraco\OneDrive - Microsoft\Documents\PowerShell\Modules\)This is a well-known issue - OneDrive locks files and prevents PowerShell from deleting/replacing module folders during updates.
The remedy is straightforward - I can explain without needing to run tools.*
⏱️ 1m 8s
💬 Copilot
The problem is OneDrive file locking. Your modules are installed under:
OneDrive syncs and locks those files, preventing PowerShell from removing old versions during the update.
Remedies (pick one):
Pause OneDrive sync before updating:
Update-PSResource Az→ resume sync.Move your module path out of OneDrive by setting
$env:PSModulePathto a non-OneDrive location, or install with-Scope AllUsers(requires admin):Close all PowerShell sessions except one (other sessions may hold file locks on loaded modules), pause OneDrive, then retry.
Also, to skip the trust prompt each time:
⏱️ 2m 16s
👤 User
Let's do 1. Can you first enact the trust. Then, if possible, show me how to pause one drive on the CLI. Thanks.
⏱️ 2m 19s
💭 Reasoning
*The user wants me to:
Let me do both.*
⏱️ 2m 32s
✅
powershellSet PSGallery as trusted repository
Arguments
{ "command": "Set-PSResourceRepository -Name PSGallery -Trusted; Get-PSResourceRepository PSGallery", "description": "Set PSGallery as trusted repository", "initial_wait": 10 }⏱️ 2m 35s
💬 Copilot
✅ PSGallery is now trusted — no more prompts.
Pausing OneDrive from CLI — unfortunately there's no official CLI command for it. The closest approach:
>⚠️ This fully kills OneDrive rather than a graceful pause. The tray icon right-click → Pause syncing is cleaner, but there's no CLI equivalent.
Would you like me to stop OneDrive, run the Az update, then restart it?
⏱️ 2m 48s
👤 User
Yes
⏱️ 2m 54s
❌
powershellStop OneDrive and update Az module
Arguments
{ "command": "Stop-Process -Name OneDrive -ErrorAction SilentlyContinue; Start-Sleep -Seconds 2; Write-Host \"OneDrive stopped. Starting Az update...\"; Update-PSResource Az", "description": "Stop OneDrive and update Az module", "initial_wait": 120 }⏱️ 3m 0s
✅
powershellFind OneDrive process ID
Arguments
{ "command": "Get-Process -Name OneDrive -ErrorAction SilentlyContinue | Select-Object Id, ProcessName", "description": "Find OneDrive process ID", "initial_wait": 10 }⏱️ 5m 9s
✅
powershellStop OneDrive and update Az module
Arguments
{ "command": "Stop-Process -Id 24460; Start-Sleep -Seconds 2; Write-Host \"OneDrive stopped. Starting Az update...\"; Update-PSResource Az", "description": "Stop OneDrive and update Az module", "initial_wait": 120 }⏱️ 5m 13s
💬 Copilot
Update is running — this can take a while since Az has many sub-modules. Waiting for it to finish...
⏱️ 5m 45s
✅
read_powershellWaiting up to 120 seconds for command output
Arguments
{ "shellId": "2", "delay": 120 }17 lines
⏱️ 5m 45s
ℹ️ Notification
Shell "Stop OneDrive and update Az module" completed
⏱️ 5m 49s
💬 Copilot
Still failing — OneDrive likely left file locks even after the process stopped. Let me check if OneDrive is truly gone and try manually removing the problematic folder first.
⏱️ 5m 52s
✅
powershellCheck if OneDrive is still running
Arguments
{ "command": "Get-Process -Name OneDrive -ErrorAction SilentlyContinue | Select-Object Id, ProcessName", "description": "Check if OneDrive is still running", "initial_wait": 10 }⏱️ 18m 20s
✅
powershellTry removing the locked module folder
Arguments
{ "command": "Remove-Item \"C:\\Users\\jaraco\\OneDrive - Microsoft\\Documents\\PowerShell\\Modules\\Az.Security\\1.8.0\" -Recurse -Force -ErrorAction Stop", "description": "Try removing the locked module folder", "initial_wait": 15 }⏱️ 18m 26s
💬 Copilot
That worked. The issue was likely residual file locks that took a moment to release. Let me also clean the other previously-failed modules, then retry the update.
⏱️ 22m 19s
✅
powershellClean failed modules and retry Az update
Arguments
{ "command": "$basePath = \"C:\\Users\\jaraco\\OneDrive - Microsoft\\Documents\\PowerShell\\Modules\"\n# Clean the other two modules that failed earlier\n$failed = @(\"Az.LogicApp\\1.6.0\", \"Az.MachineLearning\\1.2.0\")\nforeach ($m in $failed) {\n $p = Join-Path $basePath $m\n if (Test-Path $p) { Remove-Item $p -Recurse -Force -ErrorAction SilentlyContinue; Write-Host \"Removed $m\" }\n else { Write-Host \"$m already gone\" }\n}\nWrite-Host \"Starting Az update...\"\nUpdate-PSResource Az", "description": "Clean failed modules and retry Az update", "initial_wait": 180 }19 lines
⏱️ 22m 23s
💭 Reasoning
*It keeps failing on different modules each time. The approach of fixing one at a time is a whack-a-mole game. The root issue is that the modules are installed in a OneDrive-synced folder, and even with OneDrive stopped, there are lingering issues with file removal in that path.
A better approach would be to:
Or alternatively, just keep retrying - each time it clears one more module. But that's tedious.
Let me try a different approach - remove ALL old Az.* module folders first, then do the update. Or better yet, install with -Scope AllUsers to avoid the OneDrive path entirely.*
⏱️ 22m 29s
💬 Copilot
It's a whack-a-mole — each run fails on a different sub-module. Let me take a different approach: remove all old Az.* module versions at once, then reinstall cleanly.
⏱️ 23m 58s
✅
powershellBulk remove all old Az modules
Arguments
{ "command": "$basePath = \"C:\\Users\\jaraco\\OneDrive - Microsoft\\Documents\\PowerShell\\Modules\"\n$azModules = Get-ChildItem $basePath -Directory -Filter \"Az.*\" -ErrorAction SilentlyContinue\nWrite-Host \"Found $($azModules.Count) Az modules to clean\"\n$errors = 0\nforeach ($mod in $azModules) {\n try {\n Remove-Item $mod.FullName -Recurse -Force -ErrorAction Stop\n Write-Host \"Removed $($mod.Name)\"\n } catch {\n $errors++\n Write-Host \"FAILED: $($mod.Name) - $_\"\n }\n}\n# Also remove the Az meta-module itself\n$azMeta = Join-Path $basePath \"Az\"\nif (Test-Path $azMeta) { Remove-Item $azMeta -Recurse -Force -ErrorAction SilentlyContinue; Write-Host \"Removed Az\" }\nWrite-Host \"`nDone. Errors: $errors\"", "description": "Bulk remove all old Az modules", "initial_wait": 60 }8 lines
⏱️ 25m 2s
✅
read_powershellWaiting up to 60 seconds for command output
Arguments
{ "delay": 60, "shellId": "6" }8 lines
⏱️ 27m 8s
✅
read_powershellWaiting up to 120 seconds for command output
Arguments
{ "delay": 120, "shellId": "6" }8 lines
⏱️ 27m 11s
💭 Reasoning
The removal seems to be stuck, likely OneDrive files are being recalled from the cloud or there's something else going on. Let me wait more or try a different approach. Let me wait a bit longer.
⏱️ 27m 12s
💬 Copilot
The deletions are slow — OneDrive cloud-tiered files need to be recalled before deletion. Let me keep waiting...
⏱️ 32m 13s
✅
read_powershellWaiting up to 300 seconds for command output
Arguments
{ "delay": 300, "shellId": "6" }8 lines
⏱️ 32m 17s
💭 Reasoning
*This is stuck. The OneDrive files are cloud-tiered and need to be downloaded before they can be deleted. This is going to take a very long time. Let me stop this and take a completely different approach.
The better approach is to just install Az to AllUsers scope (which goes to
C:\Program Files\PowerShell\Modulesinstead of the OneDrive path), or install fresh to a non-OneDrive path.Let me stop this and suggest a cleaner approach.*
⏱️ 32m 19s
💬 Copilot
This is stuck on cloud-tiered file recalls. Let me stop this and take a cleaner approach.
⏱️ 32m 20s
✅
stop_powershellArguments
{ "shellId": "6" }⏱️ 38m 27s
✅
ask_userThe OneDrive-synced folder is fighting us — even with One...
Arguments
{ "question": "The OneDrive-synced folder is fighting us — even with OneDrive stopped, cloud-tiered files need recall before deletion, which is extremely slow. A much cleaner fix is to install Az to the **AllUsers** scope (`C:\\Program Files\\PowerShell\\Modules`) which bypasses OneDrive entirely. This requires an elevated (admin) PowerShell. Can I try that instead?", "choices": [ "Yes, install to AllUsers scope (Recommended)", "No, keep trying with the OneDrive path" ] }⏱️ 38m 31s
💭 Reasoning
*The user wants to keep trying with the OneDrive path. Let me think of a better approach for this.
The issue is that OneDrive cloud-tiered files are slow to delete. One approach is to use
attribto remove the cloud-tiered attribute, or use a different deletion method.Actually, let me think about this differently. The user could:
Run
Update-PSResource Azrepeatedly - each time it might get past a different moduleTry using
-SkipDependencyCheckor other flagsTry deleting with
robocopywhich can be faster for mass deletionSet the files to "Always keep on this device" first
Or just reinstall with the
-Reinstallflag to overwrite the problematic modulesThe real long-term solution though is to move the PowerShell module path away from OneDrive entirely—either by changing where Documents points or by configuring a separate modules folder outside of cloud sync. Using robocopy could also quickly clear out the existing folders if needed.*
⏱️ 38m 43s
💬 Copilot
OK, let's work around OneDrive. Let me try a loop approach — each run should progress past previously-failing modules. First, let me clean the specific blocker and retry.
⏱️ 38m 47s
✅
powershellCheck remaining Az modules
Arguments
{ "command": "$basePath = \"C:\\Users\\jaraco\\OneDrive - Microsoft\\Documents\\PowerShell\\Modules\"\n# Check what Az modules remain\n$remaining = Get-ChildItem $basePath -Directory -Filter \"Az.*\" -ErrorAction SilentlyContinue\nWrite-Host \"$($remaining.Count) Az.* modules remaining\"", "description": "Check remaining Az modules", "initial_wait": 15 }⏱️ 38m 49s
💭 Reasoning
Oh interesting - the bulk removal actually did clear everything, it was just slow to report. Now there are 0 Az. modules left. Let's try the install now. Since they're all gone, we should do
Install-PSResource Azinstead ofUpdate-PSResource Az.*⏱️ 38m 51s
💬 Copilot
The earlier cleanup actually succeeded — all old Az modules are gone! Let me do a fresh install now.
⏱️ 41m 1s
✅
powershellFresh install of Az module
Arguments
{ "command": "Install-PSResource Az", "description": "Fresh install of Az module", "initial_wait": 300 }⏱️ 41m 45s
✅
powershellVerify Az installed and restart OneDrive
Arguments
{ "command": "Get-InstalledPSResource Az | Select-Object Name, Version; Start-Process \"$env:LOCALAPPDATA\\Microsoft\\OneDrive\\OneDrive.exe\"; Write-Host \"OneDrive restarted.\"", "description": "Verify Az installed and restart OneDrive", "initial_wait": 15 }⏱️ 41m 49s
💬 Copilot
✅ Done! Az 15.5.0 installed successfully, and OneDrive has been restarted.
The earlier bulk cleanup worked (just slow to report due to cloud-tiered file recalls), so the fresh install went through cleanly.
⏱️ 60m 16s
ℹ️ Info
Copied last response to clipboard.
⏱️ 64m 46s
ℹ️ Info
Copied last response to clipboard.
Generated by GitHub Copilot CLI
I'm not even sure it succeeded.
It was tempted to abandon the existing install and abandon best practices and install system-wide, leaving the old version to linger in my OneDrive (and presumably other machines).
It would be nice if there was a reliable way to upgrade Az PowerShell, even if it's installed user-local. It wasn't my decision for PowerShell to put these modules in the OneDrive, though I did advise against it very early in the product offering. Now that it's established that way, we'd do best to help our customers deal with the challenges this design brings.
Issue script & Debug output
n/aEnvironment data
Module versions
Error output