Я пытаюсь применить массовую сетевую папку для каждого пользователя и папки в файле 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 «, поскольку он не существует». Но это существует. Любая помощь будет принята с благодарностью!
ОБНОВЛЕНИЕ:
Проблема связана с именами папок со специальными символами, такими как Ó и é. Могу ли я получить помощь для исправления?