2010-09-20 2 views
3

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

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

ответ

4

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

$UserSID = (Get-WmiObject Win32_UserProfile | Where {$_.LocalPath -like '*\test-*'}).SID 
(gwmi -class Win32_UserProfile -filter "SID='$UserSID'").Delete() 
+0

Я получаю следующее сообщение об ошибке: Исключения вызова "Удалить" с "0" аргументом (ы): "" В строке: 2 полукокса: 6 + (Gwmi -класс Win32_UserProfile -filter «SID = '$ UserSID' ") .Delete <<<<() + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException – pizzim13

+1

Мне нужно было добавить« -ComputerName localhost »в вашу строку. – pizzim13

3

Вы также можете просто позвонить Удалить метод непосредственно в одном заявление:

(Get-WmiObject Win32_UserProfile | Where {$_.LocalPath -like '*\test-*'}).Delete() 
1
Get-WmiObject Win32_UserProfile -Filter "RoamingConfigured = 'True'" | Remove-WmiObject 

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

2

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

0

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

Смежные вопросы