windows Powershell删除本地用户表示参数不足

rwqw0loc  于 2023-05-01  发布在  Windows
关注(0)|答案(1)|浏览(141)

我写了一个工具,使删除本地副本的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'"

nmpmafwu

nmpmafwu1#

该命令需要一个来自文档的未指定参数,只有删除过程需要该参数:-ComputerName localhost

Get-WmiObject Win32_UserProfile -ComputerName localhost -filter "LocalPath Like 'C:\users\$str'"

相关问题