我写了一个工具,使删除本地副本的AD用户从笔记本电脑,但一旦它得到的删除步骤,我得到以下错误:
使用“0”参数调用“Delete”时出现异常:“”
与之相关的代码如下:
$UserProfile = Get-WmiObject Win32_UserProfile -filter "LocalPath Like 'C:\\users\\$str'"
$UserProfile.Delete()
$str变量在十几行之前被调用
Get-WMIObject -ClassName Win32_UserProfile -Filter "special=false and localpath like 'C:\\users\\%'" | ForEach-Object {
#internal logic trimmed for brevity, it just check against a previous choice the user made and if it matches sets $target to the current object
$target = $_
}
$str = $target.localpath.TrimStart("C:\Users\")
如果我正确阅读了这些函数的手册页,那么这段代码应该会删除本地用户文件夹和注册表值
这个jist是我得到WMI对象,为了显示的目的,把它修剪成用户名作为字符串,使用该字符串重新找到WMI对象并删除它
这真的应该工作,但我得到了上面的错误,我得到了一个类似的错误,如果我尝试使用Remove-WMIObject函数太多。我知道我重做工作,因为我已经在$目标的WMI对象,但我这样做的原因错误没有意义。
编辑:修复是将-ComputerName localhost添加到拉取WMI对象的命令中(尽管该命令能够像以前那样获取相关的WMI对象)示例代码:$UserProfile = Get-WmiObject Win32_UserProfile -ComputerName localhost -filter“LocalPath Like 'C:\users$str'"
1条答案
按热度按时间nmpmafwu1#
该命令需要一个来自文档的未指定参数,只有删除过程需要该参数:-ComputerName localhost