Добрый день.
Подскажите, что делаю не так? Есть небольшой скрипт для предоставления доступа к сетевым папкам, он разбит на несколько пунктов, один из них отрабатывает не корректно, если использовать вот такую конструкцию:
Write-Host ″Menu″ -BackgroundColor White -ForegroundColor Red
Write-Host ″1. Посмотреть права на папку″ -ForegroundColor Green
Write-Host ″2. Exit″ -ForegroundColor Green
while($true)
{
$choice = Read-Host ″Выберите пункт меню″
Switch($choice){
1 {
$path = "C:\Temp"
(get-acl $path ).access | select IdentityReference, IsInherited, FileSystemRights
}
2 {Write-Host ″Exit″; return}
default {Write-Host ″Wrong choice, try again.″ -ForegroundColor Red}
}
}
То нормальный вывод я получаю только после третьего раза, сначала выводит пустую строку, потом выводит дублированные значения и третий раз вывод происходит нормально.
″Menu″
″1. Посмотреть права на папку″
″2. Exit″
″Выберите пункт меню″: 1
″Выберите пункт меню″: 1
IdentityReference IsInherited FileSystemRights
----------------- ----------- ----------------
BUILTIN\Администраторы True FullControl
NT AUTHORITY\СИСТЕМА True FullControl
BUILTIN\Пользователи True ReadAndExecute, Synchronize
NT AUTHORITY\Прошедшие проверку True Modify, Synchronize
NT AUTHORITY\Прошедшие проверку True -536805376
BUILTIN\Администраторы True FullControl
NT AUTHORITY\СИСТЕМА True FullControl
BUILTIN\Пользователи True ReadAndExecute, Synchronize
NT AUTHORITY\Прошедшие проверку True Modify, Synchronize
NT AUTHORITY\Прошедшие проверку True -536805376
″Выберите пункт меню″: 1
BUILTIN\Администраторы True FullControl
NT AUTHORITY\СИСТЕМА True FullControl
BUILTIN\Пользователи True ReadAndExecute, Synchronize
NT AUTHORITY\Прошедшие проверку True Modify, Synchronize
NT AUTHORITY\Прошедшие проверку True -536805376
″Выберите пункт меню″:
Может кто подскажет, как исправить ситуацию?