Попытка удалить локальные данные приложения, сделанные для работы с любым компьютером - PullRequest
0 голосов
/ 20 июня 2019

Сделал скрипт powershell, чтобы перейти в каталог AppData \ Default \ Cache и очистить его, и он отлично работает для системы, для которой я его создал.Однако это будет использоваться с сотнями разных компьютеров, и мне нужен какой-то способ, чтобы каталог работал со всеми из них.

Я пытался использовать:

cd %AppData%

$pop = New-Object -ComObject Wscript.Shell

$num = $pop.Popup("This will close *confidential*. Are you sure?",0,"Clear Cache",0x1)

if ($num -eq 1) 
{
  $c = get-process -name "chrome" |stop-process -force ;
  remove-item 'C:\Users\RegisterA\AppData\Local\Google\Chrome\User Data\Default\Cache' -recurse -force ;
  start-process -filepath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
} 

else {exit}

Так что вы можетевижу, что этот код создан для пользователя RegisterA, но на некоторых компьютерах есть RegisterB, RegB, StationA и т. д. Мне нужно найти способ выполнить эту работу на всех системах, не заставляя сотрудников вводить текущее имя хоста.

1 Ответ

0 голосов
/ 20 июня 2019

Этот путь к локальной папке AppData можно получить из переменной среды LocalAppData:

if ($num -eq 1) 
{
  $c = get-process -name "chrome" |stop-process -force ;
  remove-item "$env:LocalAppData\Google\Chrome\User Data\Default\Cache" -recurse -force ;
  start-process -filepath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
} 

$env:LocalAppData будет автоматически заменен путем к пути к папке данных локального приложения текущего пользователя. Важно использовать двойные кавычки (") вместо одинарных кавычек ('), в противном случае путь будет не заменен.

Я бы также рекомендовал заменить C:\Program Files (x86) на $env:ProgramFiles(x86) таким же образом, поскольку некоторые пользователи могут иметь эту папку в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...