Удалить локальный профиль Windows с помощью PowerShell - PullRequest
3 голосов
/ 21 сентября 2010

Я пытаюсь написать скрипт, который удалит локальный профиль тестовой учетной записи. Я использую следующую строку, чтобы вернуть SID любой учетной записи, которая начинается с «test -»

PowerShell: $UserSID = (Get-WmiObject Win32_UserProfile | Where {$_.LocalPath -like '*\test-*'}).SID

Получив SID, я использовал wmic для удаления, но я не уверен, как перевести этот код в PowerShell.

WMIC: wmic /node:"localhost" path win32_UserProfile where Sid="%%b" Delete

Ответы [ 5 ]

4 голосов
/ 21 сентября 2010

Я думал, что это сработает, но я не нашел метод удаления в классе Win32_UserProfile

$UserSID = (Get-WmiObject Win32_UserProfile | Where {$_.LocalPath -like '*\test-*'}).SID
(gwmi -class Win32_UserProfile -filter "SID='$UserSID'").Delete()
3 голосов
/ 24 ноября 2010

Вы также можете просто вызвать метод Delete напрямую в одном операторе:

(Get-WmiObject Win32_UserProfile | Where {$_.LocalPath -like '*\test-*'}).Delete()
2 голосов
/ 13 июня 2013

Другая причина получения Исключение, вызывающее «Delete» с аргументом (ами) «0» - пользователь, которого вы пытаетесь удалить, в данный момент вошел в систему. Выйдите из него ипопробуйте еще раз.

1 голос
/ 16 декабря 2010
Get-WmiObject Win32_UserProfile -Filter "RoamingConfigured = 'True'" | Remove-WmiObject

True - Роуминг-профиль
False - Локальный профиль

0 голосов
/ 04 мая 2016

Я решил эту проблему, открыв Powershell от имени администратора (щелкните правой кнопкой мыши «Запуск от имени администратора»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...