YuS_2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AngelNet Цитата: в тотал коммандер (а точнее в самих окнах) есть прекрасная система переменных среды, в которой папка текущего юзера находится например вот так: cd %USERPROFILE% | Всё дело в том, что в powershell такая переменная указывает не профайл авторизованного пользователя, а профайл пользователя, от имени которого выполняется скрипт... Цитата: есть только одно пожелание, как бы еще добавить ему в в список удаления, папку onedrive (c содержимым), которая остаётся в каталоге текущего пользователя? | Так вот же подсказка: 18-03-2019 Если я правильно понял, то iNNOKENTIY21, как раз и спрашивал про текущего пользователя, вошедшего в систему, а не админа, от имени которого выполняется скрипт... наверное, он сейчас, как раз и занимается подобным скриптом... 18-03-2019 Но если нет, то, для удаления содержимого вместе с каталогом onedrive, надо смотреть в сторону каталога профайла текущего пользователя (опять таки не админа, от имени которого скрипт выполняется), примерно так: Код: pushd sl 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' $loginuser = (gcim win32_computersystem|select username).username|split-path -leaf $loguserprof = (gp (dir).pschildname |? profileimagepath -match "\\$loginuser$").profileimagepath popd | т.е. добавив эти строки, например в начало скрипта, надо вместо этой строки: Код: rm -Recurse -Force -ErrorAction SilentlyContinue "$env:localappdata\Microsoft\OneDrive" | записать такую: Код: rm -Recurse -Force -ErrorAction SilentlyContinue "$loguserprof\AppData\Local\Microsoft\OneDrive" | а если проводить аналогию этой строки: 19-03-2019 Цитата: %USERPROFILE%\AppData\Local\onedrive\ | то она будет такой: Код: "$loguserprof\AppData\Local\onedrive" | При этом, не берусь анализировать весь скрипт целиком, т.к. проверять не на чем, у меня OneDrive отсутствует... В общем, прежде чем запускать на живой системе, протестируйте на виртуалках. |