Загрузка данных


# SID текущего пользователя
$sid = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value

# Сбрасываем кривые права самого скрипта
icacls "C:\Scripts\ClipboardLogger.ps1" /reset

# Убираем ранее созданные DENY с папки Scripts
icacls "C:\Scripts" /remove:d "*$sid"

# Папка со скриптом: пользователю только чтение и запуск
icacls "C:\Scripts" /grant:r "*${sid}:(OI)(CI)(RX)"

# SYSTEM и администраторы сохраняют полный доступ
icacls "C:\Scripts" /grant:r "*S-1-5-18:(OI)(CI)F"
icacls "C:\Scripts" /grant:r "*S-1-5-32-544:(OI)(CI)F"

# Создаём отдельную папку для логов
New-Item -ItemType Directory -Path "C:\ClipboardLogs" -Force | Out-Null

# Туда пользователь может писать и изменять файлы
icacls "C:\ClipboardLogs" /grant:r "*${sid}:(OI)(CI)(M)"

# Проверка чтения скрипта
Write-Host "`n=== Проверка чтения скрипта ==="
Get-Content "C:\Scripts\ClipboardLogger.ps1"

# Проверка записи в папку логов
Write-Host "`n=== Проверка записи лога ==="
"TEST $(Get-Date)" | Add-Content "C:\ClipboardLogs\clipboard_history.txt"

# Показываем итоговые права
Write-Host "`n=== Права C:\Scripts ==="
icacls "C:\Scripts"

Write-Host "`n=== Права скрипта ==="
icacls "C:\Scripts\ClipboardLogger.ps1"

Write-Host "`n=== Права C:\ClipboardLogs ==="
icacls "C:\ClipboardLogs"