@dshumov
Олдскул - Фигурнов форева

Powershell. Копирование содержимого рабочего стола пользователей?

День добрый! Коллеги, помогите совладать с Powershell.
Суть задачи: есть терминальный сервер, нужно периодически пробегать профили пользователей и копировать с их Рабочих столов и Документов все содержимое (кроме *.url и *.lnk) в их личные папки на сетевом сервере. Проблема в том, что я не могу совладать, понять как это сделать с foreach. Пока получается сделать под одного пользователя:
Get-ChildItem -Path C:\Users\%username%\Desktop\* -Exclude *.url,*.lnk -Recurse | Copy-Item -Destination \\WSFS-01\Shares$\DOCS_users\%username%
Get-ChildItem -Path C:\Users\%username%\Documents\* -Exclude *.url,*.lnk -Recurse | Copy-Item -Destination \\WSFS-01\Shares$\DOCS_users\%username%

т.е. то что у меня, годится только для логон/логоф скрипта. Но зачастую, пользователи не выходят из сессий (делать принудительный выход не вариант) и нужно просто раз в сутки проходиться по C:\Users\%username%\
  • Вопрос задан
  • 1985 просмотров
Решения вопроса 2
@azarij
В меру опытный никто
foreach($user in (Get-ChildItem C:\Users))
{

Get-ChildItem -Path "$($user.FullName)\Desktop\*" -Exclude *.url,*.lnk -Recurse | Copy-Item -Destination "\\WSFS-01\Shares$\DOCS_users\$($user.name)"
Get-ChildItem -Path "$($user.FullName)\Documents\*" -Exclude *.url,*.lnk -Recurse | Copy-Item -Destination "\\WSFS-01\Shares$\DOCS_users\$($user.name)"

}
Ответ написан
@Zenonnnn
Столкнулся с подобной задачей. Способом выше он копирует только активные сессии. Я использовал вычитывание папок

foreach ($name in (Get-ChildItem C:\Users -name))
{
Copy-Item "c:\users\$($name)\desktop" -Recurse -Destination "\\Server1\bkp_user_terminal\$($name)\desktop"
Copy-Item "c:\users\$($name)\documents" -Recurse -Destination "\\Server1\bkp_user_terminal\$($name)\dokuments"
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы