Автор Тема: Скрипт удаления домашней директории пользователя  (Прочитано 1516 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн goro

  • Старожил
  • ****
  • Сообщений: 512
  • Рейтинг: 0
  • Пол: Мужской
    • romeo_2205
    • Просмотр профиля
  • Откуда: Киев
Добрый день.
Ищу скрипт для удаления домашних папок неактивных пользователей.
Т.к. до этого пользователи деактивировались, а папки оставались.

имею в ввиду это папку


Оффлайн Fray

  • Администратор
  • Олдфаг
  • *****
  • Сообщений: 6668
  • Рейтинг: 58
  • Пол: Мужской
    • Просмотр профиля
    • IT-Бложек
  • Откуда: Петербург
Что вы имеете в виду под неактивные? Сколько-то дней не было логонов или заблокированные?
MCSE: Messaging, MCSE: Communication, MCSE: Productivity, MCSA: Office 365, MCPS
my blog - http://it-blojek.ru

Оффлайн goro

  • Старожил
  • ****
  • Сообщений: 512
  • Рейтинг: 0
  • Пол: Мужской
    • romeo_2205
    • Просмотр профиля
  • Откуда: Киев
имел в виду заблокированные

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
как-то так
Get-ADUser -Filter {Enabled -eq $False} -Properties HomeDirectory| ?{Test-Path $_.Homedirectory}|%{del $.HomeDirectory -Force -Recurse -WhatIf}

Оффлайн goro

  • Старожил
  • ****
  • Сообщений: 512
  • Рейтинг: 0
  • Пол: Мужской
    • romeo_2205
    • Просмотр профиля
  • Откуда: Киев
решил пойти чуть другим путем
для начала получить список пользователей

(Get-ADUser   -Properties * -Filter  {HomeDirectory -like "*\\netstorage\storage\HomeFolders\*"} -SearchBase 'OU=Locked users,DC=domain,DC=local' ).SamAccountname
как добавить сюда еще один фильтр?
например нужен еще {Enabled  -eq $false}
но так
(Get-ADUser   -Properties * -Filter  { {HomeDirectory -like "*\\netstorage\storage\HomeFolders\*"} -and {Enabled  -eq $false} }-SearchBase 'OU=Locked users,DC=mk,DC=corp' ).SamAccountname
не верно...

« Последнее редактирование: 18 января 2017, 16:58:59 от goro »

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
как добавить сюда еще один фильтр?
man Get-ADUser  -Full


Updated: 18 January 2017, 18:46:09

справка Compare-Object показывает как вывести только разницу
это не так

PS(19)> $a=1,2,3
PS(20)> $b=1,2,3,4
PS(21)> Compare-Object -ReferenceObject $a -DifferenceObject $b -IncludeEqual

InputObject SideIndicator
----------- -------------
          1 ==
          2 ==
          3 ==
          4 =>
« Последнее редактирование: 18 января 2017, 18:46:09 от shs »

Оффлайн goro

  • Старожил
  • ****
  • Сообщений: 512
  • Рейтинг: 0
  • Пол: Мужской
    • romeo_2205
    • Просмотр профиля
  • Откуда: Киев
на ключ IncludeEqual, ни ExcludeDifferent, не дали желаемого результата...(

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
на ключ IncludeEqual, ни ExcludeDifferent, не дали желаемого результата...(

выше я привел пример, из которого видно, что ключ IncludeEqual дает желаемый результат.

Оффлайн goro

  • Старожил
  • ****
  • Сообщений: 512
  • Рейтинг: 0
  • Пол: Мужской
    • romeo_2205
    • Просмотр профиля
  • Откуда: Киев
сори,
а как в результате сравнения оставить только  совпадение без ==?
в вашем примере
1

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
сори,
а как в результате сравнения оставить только  совпадение без ==?
в вашем примере
1
в моем примере, если нужны только совпавшие, то нужно оставить только те, где SideIndicator принимает значение ==