15:50

Home folders

We rise up for the things we believe in over and over again

Продолжаем наводить порядок.
На этот раз объектом преследования выступают домашние папки пользователей. Есть куча учеток уволенных сотрудников. У кого-то из них их домашние каталоги перенесены с боевого файлового сервера в архив, у кого-то нет, и зря занимают место. Надо от этого избавиться. Как быть? Для начала нужно получить список всех уволенных, это достаточно просто.
Далее учитываем тот факт, что домашняя папка названа по логину сотрудника, следовательно, нужно каждый из выбранных логинов проверить на наличие в пути следующего вида:
\\server-name\share\userlogin
Если такой путь имеется - значит домашний каталог не перенесен, и нужно этим озаботиться.
Объединяя все это в простой цикл получаем примерно следующее:

$colUsers = Get-QADUser -SizeLimit 0 -Disabled
write-host "Start of home folders checking..."
foreach ($user in $colUsers) {
$name = $user.SamAccountName
if (Test-Path \\server-name\share\$name) {
"Moving $name home folder to archive..."
$userhomedest = "\\archive-server-name\share\" + $name
copy-item -path \\server-name\share\$name -destination $userhomedest -container -recurse
remove-item -path \\server-name\share\$name -recurse -force
"$name home folder was moved successfully"
}
}

Соответственно, server-name - имя боевого файловика, archive-server-name - имя архива.

@музыка: А за окном забивают сваи... уже второй месяц.

@темы: PowerShell

Комментарии
22.12.2011 в 19:53

Слова "не надо нервничать" хорошо помогают привести человека в нормальное состояние бешенства.
Хороший скрипт. Только есть 2 момента, которые портят упорядоченную картину:
1) Если у пользователя менялся логин после зоздания домашнего каталога, то название папки остается старым. Связь по имени папки и логину рвется.
2) Если учетная запись уволенного пользователя была удалена, то его папка не попадет в выборку.

ИМХО правильнее делать выборку по владельцу папки: (Get-Acl $userHomeDir).Owner
А уже потом проверять жив пациент или уволен. Для удаленных акаунтов получим SID вместо имени, что также будет говорить о том что такого человека в компании уже нет.
22.12.2011 в 20:44

We rise up for the things we believe in over and over again
Cybeon, замечания верные, но есть два ответных момента :)
1. Логин сотрудника не меняется ни при каких обстоятельствах, даже если он фамилию сменит. Это зависит не от меня, такова политика.
2. Учетные записи не удаляются, так как есть у наших сотрудников привычка иногда"возвращаться". Опять же - политика, спущенная сверху.
С учетом этого я и не стал особо изгаляться.
И еще - конкретно в нашем случае владельцем всех домашних папок является отнюдь не пользователь, а ролевая учетная запись, от имени которой действует ПО для создания логинов. Она же раздает права на эти самые папки согласно шаблону.
23.12.2011 в 11:55

Слова "не надо нервничать" хорошо помогают привести человека в нормальное состояние бешенства.
Ну в таком случае да. Только по логину.
У нас к сожалению возможны случаи когда логин меняется. Бывает человеку не нравится как его обозвал автогенератор логинов или не согласен с правилами транслитерации. В таком случае логин могут и сменить, если начальство настаивает. А домашний каталог перенаправляется политикаой и по сути пользователь при первом логине сам того не зная создает себе каталог. Ну и права соответствующим образом проставлены, чтоб мог только каталог создать и в нем работать, а всякую фигню в корень писать или по чужим каталогам шастать ни-ни.
23.12.2011 в 12:52

We rise up for the things we believe in over and over again
Бывает человеку не нравится как его обозвал автогенератор логинов или не согласен с правилами транслитерации.
Демократия, однако :) Не могу сказать, что это хорошо, хотя, все зависит от ситуации.
Некоторые наши тоже первое время ругались, то не нравится, это не нравится. Политика - есть политика, против этого не попрешь. Я бы и сам себе логин поменял, ибо текущий не устраивает от слова совсем, однако, сижу и не рыпаюсь )