2016-08-12 44 views
2

我试图一次将权限应用于多个文件夹。我有一个.csv文件,其中一列中的文件夹路径和第二列中的安全组。大多数文件夹将具有多个可访问的组。该.csv是按以下格式:如何让Powershell从单个CSV单元格中读取多个值?

folderpath  groupname 
----------  --------- 
C:\Folder1  Group1 
C:\Folder2  Group2, Group3 

我的代码不会与目前应用的权限,因为有一些组名小区中的多个值。如果只列出一个组,它将适用。

#Specify CSV location 
$csv = import-csv G:\testcsv.csv 

#Start loop 
foreach($masterlist in $csv) 

{ 

$folderpath = $masterlist.folderpath 
$groupname = $masterlist.groupname 

#Apply permission to folderpath 
add-ntfsaccess -path $folderpath -account $groupname -accessrights modify,synchronize 

} 

例如,如果我运行上述代码,Group1将被成功授予C:\ Folder1权限。但是C:\ Folder2将没有应用,因为Group2和Group3都在同一个单元格中。我可以调整我的代码而无需在.csv中手动分隔数百个这些单元格吗?

谢谢你的帮助!!!!!

+4

所以你想做'$ groupname -split',“|%{add-ntfsaccess -path $ folderpath -account $ _。trim() - 修饰,同步}' – TheMadTechnician

回答

1

刚刚创建的foreach循环内集团:)最简单的方法

#Start loop 
foreach($masterlist in $csv) 

{ 
$folderpath = $masterlist.folderpath 
$groupnames = $masterlist.groupname -split "," 

foreach ($group in $groupnames) { 

#Apply permission to folderpath 
add-ntfsaccess -path $folderpath -account $group -accessrights modify,synchronize 

} 
}  

这是即兴的反应,但我认为你的想法。

相关问题