Я написал следующий сценарий для удаления всех временных файлов и кэшированных данных из профилей пользователей, расположенных в общей сетевой папке.
Он отлично работает, когда я запускаю его локально на своей машине, но когда я пытаюсь запустить его на сетевом ресурсе, он всегда терпит неудачу.
Так работает мой сценарий,
используйте команду 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
) или удалив его из своего соединения ($User_Home = $Home_Folders + $_
).
Однако лучший способ - использовать Join-Path
командлет, который проверяет наличие косой черты и при необходимости добавляет ее:
$User_Home = Join-Path $Home_Folders $_