我正在尝试编写一个删除测试帐户本地配置文件的脚本。我使用以下行返回任何以“test - ”
开头的帐户的SID 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
答案 0 :(得分:4)
我认为这会有效,但我在Win32_UserProfile类上找不到删除方法
$UserSID = (Get-WmiObject Win32_UserProfile | Where {$_.LocalPath -like '*\test-*'}).SID
(gwmi -class Win32_UserProfile -filter "SID='$UserSID'").Delete()
答案 1 :(得分:3)
您也可以直接在一个语句中调用Delete方法:
(Get-WmiObject Win32_UserProfile | Where {$_.LocalPath -like '*\test-*'}).Delete()
答案 2 :(得分:2)
使用“0”参数调用“删除”的异常 的另一个原因是您尝试删除的用户当前已登录。登录他然后再试一次。
答案 3 :(得分:1)
Get-WmiObject Win32_UserProfile -Filter "RoamingConfigured = 'True'" | Remove-WmiObject
True
- 漫游资料
False
- 本地资料
答案 4 :(得分:0)
我通过以管理员身份打开Powershell解决了这个问题(右键单击,以管理员身份运行)。