Для цикла CSV - Применение разрешения папки с помощью Powershell 2.0 - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь применить массовую сетевую папку для каждого пользователя и папки в файле CSV. У моего CSV есть заголовки UserID |Тип |Дорожка. Под заголовком Path у меня есть путь в формате «\\ server \ shared \ folder1».

Моя проблема в том, что PowerShell 2.0 не находит путь, если использовать его в качестве переменной в последовательности foreach. Код работает только если я использую фактический путь. Я не хочу запускать несколько сценариев для каждого пути.

Import-Csv C:\BulkFolderPermission.csv | Foreach {
    $path = $_.Path
    $user = $_.UserID
    $type = $_.Type
    $Acl = Get-Acl $path
    $Acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule(
        $user,
        "$type",     # [System.Security.AccessControl.FileSystemRights]
        "ContainerInherit, ObjectInherit", # [System.Security.AccessControl.InheritanceFlags]
        "None",      # [System.Security.AccessControl.PropagationFlags]
        "Allow"      # [System.Security.AccessControl.AccessControlType]
    ))) 
    (Get-Item $path).SetAccessControl($Acl)
}

Я получаю сообщение об ошибке: «не удается найти путь» \\ server \ shared \ folder1 «, поскольку он не существует». Но это существует. Любая помощь будет принята с благодарностью!

ОБНОВЛЕНИЕ:

Проблема связана с именами папок со специальными символами, такими как Ó и é. Могу ли я получить помощь для исправления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...