2016-08-12 45 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 

} 
}  

這是即興的反應,但我認爲你的想法。

相關問題