我正在尝试获取Get-ChildItem的结果,以便从CSV中过滤这些文件夹的列表
我有许多家庭文件夹,其名称与用户SamAccountName相同(通常情况下)
所有主文件夹都存储在我的共享中: \域名\用户
我的CSV包含名称与主文件夹相同的用户 例如:
SamAccountName
123456
123457
123458
我想要工作的脚本部分是这样的:
$SAM = import-csv "C:\Scripts\HomeDrive.csv"
$HomeDriveSharePath = "\\Domain\users"
$HomeDirectories = Get-ChildItem $HomeDriveSharePath | Where {$_.Name -Match $SAM.samaccountname -AND $_.PsIsContainer -eq $true}
使用我的CSV,这不会返回任何结果(尽管CSV中示例用户的文件夹肯定存在)
如果我运行它,它会返回所有的homefolders(应该这样)
Get-ChildItem $HomeDriveSharePath
如果我这样做:
$HomeDirectories = Get-ChildItem $HomeDriveSharePath | Where {$_.Name -Match "123456" -AND $_.PsIsContainer -eq $true}
然后我确实显示了相应的文件夹(证明了行的类型,文件夹确实存在)
这需要针对数百名用户进行迁移,否则我只是坐在这里手动执行: - (
首次发帖,如果没有格式化或解释得非常正确,请道歉......彻底搜索此网站并且谷歌没有带回我似乎拥有的确切场景。
我很难过......你的帮助很感激,
由于
答案 0 :(得分:0)
$SAM = import-csv "C:\Scripts\HomeDrive.csv"
$HomeDriveSharePath = "\\Domain\users"
$HomeDirectories = Get-ChildItem $HomeDriveSharePath | Where {$_.PsIsContainer}
$HomeDirectories = $(foreach ($name in $sam) {
$HomeDirectories | ? {$_.name -match $name.samaccountname.trim()}
})
或
$HomeDirectories = $sam | % { dir $HomeDriveSharePath -Filter $_.samaccountname.trim() -Directory -Name }