You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何排除CSV及指定数组用户,移除共享电脑其余用户配置文件?

问题原因

你当前脚本里的$ADUsers是通过Import-CSV导入的对象数组,每个元素都是包含SamAccountName属性的自定义对象。而-notcontains运算符在这里是检查整个对象是否存在于集合中,不是对比对象的属性值,所以无法匹配到$user.LocalPath.split('\')[-1]这个用户名字符串,导致CSV里的用户没被排除。

修改方案

先从导入的CSV对象中提取出SamAccountName属性值,生成纯用户名的字符串数组,再用这个数组做匹配判断:

# 提取CSV中的用户名到字符串数组
$ADUserNames = (Import-CSV -Path C:\users\username\Desktop\DiskSpaceCleanup.csv).SamAccountName | Sort-Object
$ExcludedProfiles = @('administrator','Public','default','DOMAIN\administrator','NetworkService','LocalService','systemprofile')

$OnHardDrive = Get-CimInstance -ClassName Win32_UserProfile  

$userstoremove = @()
foreach($user in $OnHardDrive){
    $profileUserName = $user.LocalPath.split('\')[-1]
    # 用纯用户名数组做对比
    if(($ADUserNames -notcontains $profileUserName) -and ($ExcludedProfiles -notcontains $profileUserName)){
        $userstoremove += $user
    }
}

$userstoremove.LocalPath | Format-Table
关键修改点
  • 将$ADUsers替换为提取了SamAccountName的$ADUserNames字符串数组,确保对比的是相同类型的字符串值
  • 新增$profileUserName变量,避免重复拆分路径,提升可读性

内容的提问来源于stack exchange,提问作者Jake LaTouf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:24:21