bk0011m
@bk0011m
Системный администратор

Как удалить .vhdx уволенных сотрудников?

Нужно удалять из папки vhdx файлы тех, у кого заблокированы учетки. Сейчас я просто получаю SID тех, у кого заблокирована учетка. теперь нужно удалить этот файл.
$PathIn  = "\\Server\files"
Get-ChildItem -Path $PathIn -Filter UVHD-S*.vhdx | ForEach-Object {
    $SID = $_.BaseName.Substring(5)
    $SID
} | Get-ADUser | Where {$_.Enabled -eq $False} | select SID
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Файлы удаляются через Remove-Item.

Я бы написал так. Но, как справедливо указал Владимир Коротенко, на свой страх и риск :)
$PathIn  = "\\Server\files"

Get-ChildItem -Path $PathIn -Filter UVHD-S*.vhdx | Where-Object {
    $User = Get-AUser $_.BaseName.Substring(5);
    $User.Enabled -eq $false
} | Remove-Item -Whatif

И ещё, как минимум, стоит себя обезопасить и удалять не просто отключенных, на уже давно отключенных, например с просроченным паролем.
То есть вам надо будет доработать часть $User.Enabled -eq $false
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@NortheR73
системный инженер
как-то так:
$PathIn  = "\\Server\files"
$VHDXSet = Get-ChildItem -Path $PathIn -Filter UVHD-S*.vhdx | select FullName
$DisabledUsers = Get-ADUser -Filter * | Where {$_.Enabled -eq $False} | select SID
Foreach($VHDXFile in $VHDXSet)
{
    $FileName = $VHDXFile.FullName
    Foreach($User in $DisabledUser)
    {
        $UserSID = $User.SID.ToString()
        If($FileName.Contains($UserSID))
        {
            Remove-Item -Path $FileName -Confirm:$true
        }
    }
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы