PowerShell - [решено] Удаление onedrive с помощью powershell

Ответить
Аватара пользователя
zegordo

PowerShell - [решено] Удаление onedrive с помощью powershell

Сообщение zegordo »

Доброго дня!

Есть bat скрипт удаления onedrive



Код:

Код: Выделить всё

taskkill /f /im OneDrive.exe 
ping 127.0.0.1 -n 5 
%SystemRoot%\System32\OneDriveSetup.exe /uninstall
%SystemRoot%\SysWOW64\OneDriveSetup.exe /uninstall
ping 127.0.0.1 -n 5 
rd %USERPROFILE%\OneDrive /Q /S 
rd C:\OneDriveTemp\ /Q /S 
rd %LOCALAPPDATA%\Microsoft\OneDrive /Q /S   //тут кстати ругается, пишет нет доступа, хотя под админом запущен
rd %PROGRAMDATA%\"Microsoft OneDrive" /Q /S 
REG DELETE "HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f 
REG DELETE "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f 
Reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\OneDrive" /v "DisableFileSyncNGSC" /t REG_DWORD /d "1" /f

Если это всё запустить в powershell, выдаст следующие ошибки:



Скрытый текст

[spoiler]Изображение



на втором скрине - аргументы /q /s заменяются на -force и -recursive соответственно, и в этом случае даст ошибку как и на первом скрине.



Изображение[/spoiler]








Отсюда вопрос: каким образом через павершел дать ему понимание переменных сред, ну и как заменить команду /uninstall.

в двух словах - как и что исправить, чтобы скрипт сохранил 100% функциональность в павершеле
Аватара пользователя
Kazun

Re: PowerShell - [решено] Удаление onedrive с помощью powershell

Сообщение Kazun »

В чем проблема сохранить как бат файл и выполнить?



Переписать для PowerShell:



Код:

Код: Выделить всё

Stop-Process -Name OneDrive -Force -ErrorAction 0
"$env:SystemRoot\System32\OneDriveSetup.exe","$env:SystemRoot\SysWOW64\OneDriveSetup.exe" | Foreach {
	if(Test-Path $_) {
		Start-Process $_ -ArgumentList "/uninstall" -Wait
	}
}
$dir = "$env:USERPROFILE\OneDrive","C:\OneDriveTemp\","$env:LOCALAPPDATA\Microsoft\OneDrive","$env:ProgramData\Microsoft OneDrive" 
$dir | Foreach {
	Remove-Item -LiteralPath $_ -Force -Recurse
}
REG DELETE "HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f 
REG DELETE "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f 
Reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\OneDrive" /v "DisableFileSyncNGSC" /t REG_DWORD /d "1" /f
Аватара пользователя
zegordo

Re: PowerShell - [решено] Удаление onedrive с помощью powershell

Сообщение zegordo »

Цитата Kazun:



В чем проблема сохранить как бат файл и выполнить?
PowerShell - [решено] Удаление onedrive с помощью powershell




Все команды делаются для запуска при свежей установке винды, не хочу плодить сущности и всё запихиваю в 1 файл(с комментариями ессно).

павершел именно потому, что только он может удалить встроенные аппы.



кстати, первый ответ в рунете как удалить его с помощью павершела. надо бы гугл с яндексом на эту тему натравить.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»