Powershell:来自csv的get-childitem文件夹

时间:2015-12-17 14:26:58

标签: csv powershell get-childitem home-directory

我正在尝试获取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}

然后我确实显示了相应的文件夹(证明了行的类型,文件夹确实存在)

这需要针对数百名用户进行迁移,否则我只是坐在这里手动执行: - (

首次发帖,如果没有格式化或解释得非常正确,请道歉......彻底搜索此网站并且谷歌没有带回我似乎拥有的确切场景。

我很难过......你的帮助很感激,

由于

1 个答案:

答案 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 }