【问题标题】:How to have Powershell read multiple values from a single CSV cell?如何让 Powershell 从单个 CSV 单元格中读取多个值?
【发布时间】:2017-01-11 17:56:26
【问题描述】:

我正在尝试一次将权限应用于多个文件夹。我有一个 .csv 文件,其中一列中的文件夹路径和第二列中的安全组。大多数文件夹将有多个具有访问权限的组。 .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 中的数百个这样的单元格吗?

谢谢你的帮助!!!!!!

【问题讨论】:

  • 所以你想做$groupname -split "," |%{add-ntfsaccess -path $folderpath -account $_.trim() -accessrights modify,synchronize}

标签: csv powershell permissions


【解决方案1】:

只需创建内部循环 foreach Group :) 最简单的方法

 #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

}
}    

这是临时响应,但我想你明白了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    相关资源
    最近更新 更多