Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Description:
- # This script will remove and disable OneDrive integration.
- #Import-Module -DisableNameChecking .\force-mkdir.psm1
- function force-mkdir($path) {
- if (!(Test-Path $path)) {
- #Write-Host "-- Creating full path to: " $path -ForegroundColor White -BackgroundColor DarkGreen
- New-Item -ItemType Directory -Force -Path $path
- }
- }
- #Import-Module -DisableNameChecking .\take-own.psm1
- function Takeown-File($path) {
- takeown.exe /A /F $path
- $acl = Get-Acl $path
- # get administraor group
- $admins = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-32-544")
- $admins = $admins.Translate([System.Security.Principal.NTAccount])
- # add NT Authority\SYSTEM
- $rule = New-Object System.Security.AccessControl.FileSystemAccessRule($admins, "FullControl", "None", "None", "Allow")
- $acl.AddAccessRule($rule)
- Set-Acl -Path $path -AclObject $acl
- }
- function Takeown-Folder($path) {
- Takeown-File $path
- foreach ($item in Get-ChildItem $path) {
- if (Test-Path $item -PathType Container) {
- Takeown-Folder $item.FullName
- } else {
- Takeown-File $item.FullName
- }
- }
- }
- echo "Kill OneDrive process"
- taskkill.exe /F /IM "OneDrive.exe"
- taskkill.exe /F /IM "explorer.exe"
- echo "Remove OneDrive"
- if (Test-Path "$env:systemroot\System32\OneDriveSetup.exe") {
- & "$env:systemroot\System32\OneDriveSetup.exe" /uninstall
- }
- if (Test-Path "$env:systemroot\SysWOW64\OneDriveSetup.exe") {
- & "$env:systemroot\SysWOW64\OneDriveSetup.exe" /uninstall
- }
- echo "Removing OneDrive leftovers"
- rm -Recurse -Force -ErrorAction SilentlyContinue "$env:localappdata\Microsoft\OneDrive"
- rm -Recurse -Force -ErrorAction SilentlyContinue "$env:programdata\Microsoft OneDrive"
- rm -Recurse -Force -ErrorAction SilentlyContinue "C:\OneDriveTemp"
- echo "Disable OneDrive via Group Policies"
- force-mkdir "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive"
- sp "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive" "DisableFileSyncNGSC" 1
- echo "Remove Onedrive from explorer sidebar"
- New-PSDrive -PSProvider "Registry" -Root "HKEY_CLASSES_ROOT" -Name "HKCR"
- mkdir -Force "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
- sp "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0
- mkdir -Force "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
- sp "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0
- Remove-PSDrive "HKCR"
- # Thank you Matthew Israelsson
- echo "Removing run hook for new users"
- reg load "hku\Default" "C:\Users\Default\NTUSER.DAT"
- reg delete "HKEY_USERS\Default\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "OneDriveSetup" /f
- reg unload "hku\Default"
- echo "Removing startmenu entry"
- rm -Force -ErrorAction SilentlyContinue "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk"
- echo "Restarting explorer"
- start "explorer.exe"
- echo "Waiting for explorer to complete loading"
- sleep 10
- echo "Removing additional OneDrive leftovers"
- foreach ($item in (ls "$env:WinDir\WinSxS\*onedrive*")) {
- Takeown-Folder $item.FullName
- rm -Recurse -Force $item.FullName
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement