Добрый день. Есть задача удалять профили пользователей у которых нет учетной записи в AD, предварительно перемещать их во временной хранилище перед удалением, при этом логировать список перемещенных файлов. Как логировать файлы
которые не удалось переместить я нашел, а вот удачное перемещение нет. Ниже привожу листинг скрипта:
cls
$OldUserProfile= "C:\OldUserProfile\"
function FindOldUserProfile
{
$UserProfile= Get-WmiObject Win32_UserProfile
foreach ($a in $UserProfile)
{
$objSID = New-Object System.Security.Principal.SecurityIdentifier($a.SID)
$a.SID
$error.Clear()
$objUser = $objSID.Translate([System.Security.Principal.NTAccount])
$a.LocalPath
CopyOldUserProfile -CopyUserFolder $a.LocalPath
if ($? -eq 0)
{
CopyOldUserProfile -CopyUserFolder $a.LocalPath
Write-Host "Not found user: $a"
#$a | Remove-WmiObject
}
$objUser.Value
}
}
function CopyOldUserProfile
{
param ($CopyUserFolder)
$LogCopyUserFolder = $OldUserProfile
Copy-Item -Path $CopyUserFolder -Recurse -Destination $OldUserProfile -Force -ErrorAction SilentlyContinue -ErrorVariable BadCopy -OutVariable GodCopy
$BadCopy= $BadCopy | foreach {$_.TargetObject}
$BadCopy= $BadCopy | foreach {$_.fullname}
$BadCopy
}
FindOldUserProfile