【问题标题】:Set folders permissions with a foreach using a csv使用 csv 通过 foreach 设置文件夹权限
【发布时间】:2022-10-01 08:42:21
【问题描述】:

基于这样的 csv 文件,我创建了这个用户和他的文件夹:

user,password,name
fcuadrado,P@assword,Paco Cuadrado
rita,1234@ASIR,Rita la cantaora
ccoton,Asir1234,Carmelo Conton

我在 localhost 中创建用户:

foreach ($users in (Import-Csv .\\usuarios.csv)){
$securepassword = ConvertTo-SecureString  \"$users.password\" -AsPlainText -Force
New-LocalUser -Name $users.user-Password $securepassword-FullName $users.name
}

和文件夹:

foreach ($users in (Import-Csv .\\users.csv)){
New-Item -Name $users.user-Path C:\\users-ItemType Directory
}

我正在尝试这个,但循环无法从 csv 中捕获用户

 foreach ($users in (Import-Csv .\\users.csv)){
    $acl = Get-Acl -Path c:\\users\\$users.user
    $acl.SetAccessRuleProtection($true,$false)
    $acl.Access | ForEach-Object { $acl.RemoveAccessRule($_) | Out-Null }
    $ace = New-Object System.Security.Accesscontrol.FileSystemAccessRule ($users.user, \"FullControl\", \"ContainerInherit,ObjectInherit\", \"InheritOnly\", \"Allow\")
    $acl.AddAccessRule($ace)
    Set-Acl -Path \"c:\\users\" -AclObject $acl
    }

我想使用我用来创建文件夹和用户的 foreach 设置权限。 那就是返回powershell

Get-Acl Access route c:\\users\\@{user=fcuadrado; password=P@assword; name=Paco Cuadrado}.user cannot be found 
  • 一次路径是: .\\users.csv 和两次: .\\usuarios.csv - 这是对的吗?
  • 抱歉,原始脚本是西班牙语。我已经翻译了它以便更好地理解
  • 和 $users.user 什么都不返回?
  • 我用 powershell 错误更新请求
  • 看起来您需要使用$acl = Get-Acl -Path \"c:\\users\\$($users.user)\",然后在set-acl 行中使用相同的引用方法。

标签: powershell


【解决方案1】:

您需要查看几个问题。
第一个是您的 CSV 文件。在示例中,您使用逗号作为分隔符。
根据您的 PS 运行的文化,分隔符可能会有所不同。所以明确声明它使用-分隔符范围:

$userData = Import-Csv -Path '.\usuarios.csv' -Delimiter ','

之后,检查是否$用户数据确实是一个PSObject或者一个数组,所以可以直接调用属性。

第二个问题是您的参数声明新本地用户.
在没有隔离的情况下,无法在字符串中访问对象属性。
这是错误的:

New-LocalUser -Name "$user.User" -Password $secpass -FullName "$user.Name"

这有效:

New-LocalUser -Name $user.User -Password $secpass -FullName $user.Name

# Alternatively
New-LocalUser -Name "$($user.User)" -Password $secpass -FullName "$($user.Name)"

【讨论】:

    猜你喜欢
    • 2011-10-07
    • 2012-01-20
    • 2019-04-03
    • 2014-09-28
    • 1970-01-01
    • 2015-10-18
    • 2023-03-28
    • 2017-10-05
    • 2013-12-22
    相关资源
    最近更新 更多