У меня есть два скрипта, один из них в пакете для еженедельного расписания задач task_del_user.cmd
SCHTASKS /Create /SC weekly /D MON,TUE,WED,THU,FRI /TN MyDailyDelete /ST 15:00:00 /TR "Powershell -ExecutionPolicy ByPass -File C:\Users\%username%\Desktop\del_userprofile.ps1" /RU "Admin" /RP "admin1"
И второй в PowerShell для удаления профиля пользователя старше x дней del_userprofile.ps1
# Program to delete user profiles through Powershell older than 30 days
# User profiles older than today's date - $ of days will be deleted
$numberOfDays = 30
# Number of digits in local path string to just after C:\users\
$pos = 9
# Get all user profiles where the last log on time is older than the current date - $numberOfDays
$profileStructsToRemove = Get-CimInstance Win32_UserProfile |
Where-Object {$_.LastUseTime -lt $(Get-Date).Date.AddDays(-$numberOfDays) } |
Where-Object {$_.LocalPath.ToUpper() -ne 'C:\USERS\ADMINISTRATOR'} |
Where-Object {$_.LocalPath.ToUpper() -ne 'C:\USERS\PUBLIC'}
Where-Object {$_.LocalPath.ToUpper() -ne 'C:\USERS\Default'}
foreach ($struct in $profileStructsToRemove)
{
$userProfileToDelete = $struct.LocalPath.Substring($pos, $struct.LocalPath.Length - $pos)
Write-Host "Currently deleting profile...$userProfileToDelete..."
(Get-WmiObject Win32_UserProfile -Filter "localpath='C:\\Users\\$userProfileToDelete'").Delete()
}
Я могу сделать это успешно в своей учетной записи, но я не могу применить это в сеансе без прав администратора. Не могли бы вы мне помочь.
Вероятно, вам нужно добавить /RL HIGHEST
команде schtasks / CREATE. По умолчанию ограничено.