Показать полную графическую версию : [решено] Права пользователей на папку
tarasov.evgeny
22-09-2010, 18:46
Добрый день.
Выполняю вот такую команду:
get-childitem c:\folder -recurse | get-acl | format-table -wrap -GroupBy Access | out-file c:\file.csv -width 500
Получаю нормальный результат на папку и вложенные папки.
Хочу избавиться от столбца Owner вот такой командой:
get-childitem c:\folder -recurse | get-acl | format-table -wrap -GroupBy Access -Property Path, Access | out-file c:\file.csv -width 500
В результате получаю не то, чтобы хотелось:
{System.Security.AccessControl.FileSystemAccessRule, System.Security....} перед путем до файла или папки и вместо прав доступа всех пользователей
tarasov.evgeny
06-10-2010, 15:35
Попробовал сделать так:
PS > Get-Acl | Select-Object Access,Path | Format-List
Access : {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileS
ystemAccessRule, System.Security.AccessControl.FileSystemAccessRule...}
Path : Microsoft.PowerShell.Core\FileSystem::C:\Documents and Settings\tarasov.evgeny
tarasov.evgeny
28-11-2010, 23:00
Поздравьте меня :).
Я нашел ответ. Ура.
Не прошло и полгода...
Но лучше позже, чем никогда.
$a=(Get-Acl).Path
(get-acl).Access | Format-Table AccessControlType, FileSystemRights, '
IdentityReference, @{Label="Path"; Expression={$a -replace (".*::", "")}}
В данном случае, выдается результат к текущей папке.
AccessControlType - это либо разрешено, либо запрещено
FileSystemRights - это Чтение, изменение, и т.п.
IdentityReference - это кому права выданы
Path - путь до текущей папки.
Есть вопрос по поводу replace. Вопрос главным образом к amel27 (поскольку именно он подсказал мне как быть в аналогичной ситуации), но буду рад любому, кто подскажет.
Вот в этом посте http://forum.oszone.net/thread-188363.html фигурирует такой скрипт:
.......
ForEach-Object {"UserName: " + [regex]::replace($_.UserName,".*\\","")}
.......
Что и зачем идет после слова -replace понятно более или менее. Первые две ковычки - это что, второе две кавычки - это на что поменять...
[regex] - это скорее всего обозначение, что регулярные выражение используются в замене.
Где можно про это прочитать(ткните носом), просто в моем варианте :
{$a -[regex]::replace (".*::", "")}} - выдает ошибку - неожиданные токен "(".
tarasov.evgeny
29-11-2010, 10:45
Добрый день,
решил попробовать всё это сконвертить в html:
Задача получать только список доменных пользователей + заменить название столбцов на русские или более понятные.
Следующий этап, сравнивать два файла и получать на выходе отчет (каждый день) об внесенных изменениях за день
$path=(Get-Acl).Path
(get-acl).Access | Where-Object {$_.IdentityReference -like "domen*"} | '
ConvertTo-Html -Property AccessControlType, FileSystemRights, '
@{Label="Пользователь"; Expression={$_.IdentityReference}},'
@{Label="Папка или файл"; Expression={$path -replace (".*::", "")}} | '
Out-File c:\get_acl.htm
Если заменить
@{Label="Пользователь"; Expression={$_.IdentityReference}}
на
@{Label="Пользователь"; Expression={$_.IdentityReference -replace ".*\", ""}}
то этот столбец оказывается пустым.
Что делаю не так?
Вот правильный ответ:
@{Label="Пользователь"; Expression={$_.IdentityReference -replace (".*\\", "")}}
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.