Я не знаком с модулем, который вы используете, и похоже, что это должно быть 6 строк не 3 (вставить разрыв до [gc]
, до Remove-PSDrive
и до Import-Module
).
Дальше, укажите промежуток между Set-ExecutionPolicy
и RemoteSigned
.
Теперь скрипт собирает профили пользователей, передает их через оператор Where
, который исключает учетную запись администратора из списка профилей, а затем удаляет все остальные профили. Давайте пройдем через это ...
Set-ExecutionPolicy RemoteSigned
Это устанавливает политику выполнения. Я собираюсь предположить, что это необходимо для устранения проблем с неподписанным модулем, который вы загружаете за пару шагов.
[gc]::collect()
Это заставляет сборщик мусора очищать память и удалять неиспользуемые ресурсы. Вероятно, эта строка может быть пропущена.
cmd /c start reg unload "HKCU"
Это использует приложение REG.EXE командной строки выгрузить улей HKEY_CURRENT_USER внутри текущего набора реестра. Это нужно сделать, прежде чем удалять профиль, поскольку вы не можете удалять файлы, которые используются.
Remove-PSDrive HKCU
Это почти то же самое, но для поставщика реестра PowerShell. Я предполагаю, что это так, что вы не получаете ошибок или не пытаетесь перезагрузить куст HKCU.
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\ManageUserProfiles\ManageUserProfiles.PSM1
Это загружает модуль «Управление профилями пользователей». Я не знаком с модулем, но вам нужно убедиться, что у вас установлен этот модуль на компьютере, на котором он запущен, поэтому, если вы используете это на всех своих компьютерах, вам необходимо установить этот модуль на всех ваших компьютеров.
get-userprofile |where{ $_.SID -ne ("S-1-5-21-3071724114-2656578308-4228372245-500")} | remove-userprofile
Это команда только что загруженного модуля. Я предполагаю, что пользовательские профили станут своего рода пользовательским объектом, а затем он подключится к оператору Where
, который исключает учетную запись администратора, заявив, что он разрешает только объекты профиля (-ne
- это оператор «не равен») имеют свойство SID, равное «S-1-5-21-3071724114-2656578308-4228372245-500». Таким образом, все профили пользователей, кроме профиля учетной записи администратора, затем передаются в команду Remove-UserProfile
, что, вероятно, может предполагать удаление каждого профиля, который был отправлен на него.
Надеюсь, это объясняет, что делает ваш сценарий.
SID: S-1-5-21domain-500 Имя: Администратор Описание: Учетная запись пользователя для системного администратора. По умолчанию это единственная учетная запись пользователя, которая получает полный контроль над системой. –
Источник: https://support.microsoft.com/en-us/kb/243330 –
Что касается самого скрипта, я тоже не профессионал, но похоже, что он удалит профили администратора только на вашем компьютере. –