У меня есть скрипт:
$TeamsPath = [System.IO.Path]::Combine($env:LOCALAPPDATA, 'Microsoft', 'Teams')
$TeamsUpdateExePath = [System.IO.Path]::Combine($env:LOCALAPPDATA, 'Microsoft', 'Teams', 'Update.exe')
try
{
if (Test-Path -Path $TeamsUpdateExePath) {
Write-Host "Uninstalling Teams process"
# Uninstall app
$proc = Start-Process -FilePath $TeamsUpdateExePath -ArgumentList "-uninstall -s" -PassThru
$proc.WaitForExit()
}
if (Test-Path -Path $TeamsPath) {
Write-Host "Deleting Teams directory"
Remove-Item –Path $TeamsPath -Recurse
}
}
catch
{
Write-Error -ErrorRecord $_
exit /b 1
}
Он отлично работает, если работает как текущий пользователь.Проблема в том, что SCCM запускает его как учетную запись SYSTEM, поэтому папка не удаляется.
Есть ли способ просмотреть имя папки в "C: \ users \" и, основываясь на именах, установить для переменной путь соответственно Start-Process?ИЛИ все, что может дать мне имя текущего зарегистрированного пользователя тоже отлично работает.Мне нужно избавиться от $ env: LOCALAPPDATA и добавить что-то еще, что я не могу придумать.