ПОЧЕМУ скрипт, когда корпоративный подход - GPO.
Как удалить старые профили пользователей с помощью GPO и PowerShell?
Нет причин Чтобы сделать это с нуля, используйте то, что предоставили другие ...
Используйте PowerShell для удаления локальных профилей
Как удалить профили пользователей старше указанного количества дней в Windows
... а также модули из MS powershellgallery.com, поскольку вы смотрите на любой подход, который решите использовать.
Find-Module -Name '*user*profile*' | Format-Table -AutoSize
<#
# Results
Version Name Repository Description
------- ---- ---------- -----------
1.0 UserProfile PSGallery This module manages user profiles on local and remote computers
0.1.1 Microsoft.Graph.Users.ProfilePhoto PSGallery Microsoft Graph PowerShell Cmdlets
1.0.6 Get-UserProfile PSGallery The Get-UserProfile module list or remove User Profiles from local
#>
Find-Module -Name '*userprofile*' | Format-List -Force
Обновление
Тем не менее, вы специально сказали ...
'Я понимаю, что метод, который я использую, не самый лучший. Мне было интересно, что было бы лучшим способом сделать это?
... и что мы все предложили, использование GPO - лучший способ, нормальный общепринятый в отрасли способ сделать это. Не пишите сценарии, если у вас нет другого выбора. Windows AD сделает это за вас.
Не изобретайте колесо, если вы не знаете, что оно действительно лучше. В обучении, конечно, есть обучение, проба и ошибка, но учиться и использовать из источников, которые уже сделали это. Есть множество примеров во всем Интернете для этого варианта использования. Просто ищите это. Нет причин делать это с нуля.
'powershell remove профили пользователей'
Которые показывают, что вы уже делаете ... Пример (s) - готовые сценарии для этого варианта использования через Ms powershellgallery.com.
Использование PowerShell для удаления профиля пользователя (пошаговое руководство)
Get-CimInstance -ComputerName SRV1,SRV2,SRV3 -Class Win32_UserProfile |
Where-Object { $_.LocalPath.split('\')[-1] -eq 'UserA' } |
Remove-CimInstance
Remove-UserProfile - удаление локальных профилей пользователей и очистка C: \ Users Directory
Этот скрипт содержит функцию (Remove-UserProfile), которая используется для удалить профили пользователей и дополнительное содержимое каталога C: \ Users (если указан) на локальном компьютере.
Загрузить: Remove-UserProfile.ps1
Удаление неиспользуемых пользовательских профилей на локальном компьютере (PowerShell)
Скрипт Удаление пользовательских профилей на нескольких серверах v2
И с использованием модулей, которые Вы видите из приведенных выше команд, это не то, что делать в дальнейшем. Они находятся в / доступны от MS и в PowerShell напрямую по причине. Все, что вы используете в PowerShell - это модули, размещенные на вашем компьютере, а также модули, которые вы загружаете и устанавливаете с MS и других ресурсов.
Опять же, используйте встроенные корпоративные инструменты в Windows или других выбранных ОС. как и было задумано, и если они не обеспечивают то, что вам нужно, то обратите внимание на другие варианты, такие как сценарии на уровне объекта, который корпоративный инструмент не раскрывает в своем GUI.