Я написал следующий сценарий для удаления всех временных файлов и кэшированных данных из профилей пользователей, расположенных в общей сетевой папке.
Он отлично работает, когда я запускаю его локально на своей машине, но когда я пытаюсь запустить его на сетевом ресурсе, он всегда терпит неудачу.
Вот как работает мой скрипт,
используйте команду remove-item для удаления необходимых файлов
$ userlist = Get-Content -Path "C: \ Profiles \ names.txt"
$ home_folders = "C: \ Profiles \"
$ UserList | ForEach-Object {
$ User_Home = $ Home_Folders + "\" + $ _
Remove-Item "$ User_Home \ UPM_Profile \ AppData \ Local \ Temp \ *" -Force -Recurse
}
Что я сделал до сих пор?
В настоящее время вы добавляете две обратные косые черты в свой каталог:
$home_folders = "C:\Profiles\"
#...
$User_Home = $Home_Folders + "\" + $_
Это можно обойти, удалив косую черту из home_folders ( $ home_folders = "C: \ Profiles
) или удалив ее из вашего join ( $ User_Home = $ Home_Folders + $ _
).
Однако лучше использовать командлет Join-Path
, который проверяет наличие косой черты и при необходимости добавляет ее. :
$User_Home = Join-Path $Home_Folders $_