Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Права пользователей на папку

Ответить
Настройки темы
PowerShell - [решено] Права пользователей на папку

Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Добрый день.
Выполняю вот такую команду:
Код: Выделить весь код
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....} перед путем до файла или папки и вместо прав доступа всех пользователей

Отправлено: 18:46, 22-09-2010

 

Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Попробовал сделать так:
Код: Выделить весь код
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

Отправлено: 15:35, 06-10-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Поздравьте меня .
Я нашел ответ. Ура.
Не прошло и полгода...
Но лучше позже, чем никогда.
Код: Выделить весь код
$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 (".*::", "")}}
- выдает ошибку - неожиданные токен "(".

Отправлено: 23:00, 28-11-2010 | #3


Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Добрый день,

решил попробовать всё это сконвертить в 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 (".*\\", "")}}

Последний раз редактировалось tarasov.evgeny, 06-12-2010 в 16:51. Причина: Нашел ответ на часть вопросов.


Отправлено: 10:45, 29-11-2010 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Права пользователей на папку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Командная строка, права на папку/файл, как? Rhamzes Автоматическая установка Windows 2000/XP/2003 8 26-12-2020 19:45
CMD/BAT - [решено] Как получить права на папку\файл в Windows Seven через батник? Pozia Скриптовые языки администрирования Windows 7 08-12-2009 21:47
Домен + пользователь + права на папку на HDD DDNMazafaka Microsoft Windows NT/2000/2003 5 27-08-2009 14:44
FreeBSD - proftpd и PHP, права записи в папку fantik Общий по FreeBSD 5 27-04-2009 09:05
Права на share папку... patrick4patrick Microsoft Windows NT/2000/2003 13 05-02-2008 17:42




 
Переход