Rupanya karma saya adalah ini: menerapkan tugas-tugas standar dalam segala macam cara yang tidak sepele. Jika seseorang memiliki visi yang berbeda tentang masalah - saya meminta diskusi, untuk menyelesaikan masalah tersebut.
Suatu pagi yang cerah, tugas yang menarik muncul: untuk mendistribusikan hak kepada kelompok pengguna pada bola yang berbeda yang berisi subfolder proyek dengan folder dokumen. Semuanya baik-baik saja dan skrip ditugaskan menetapkan hak ke folder. Dan kemudian ternyata kelompok-kelompok tersebut harus berisi pengguna domain yang berbeda, dari hutan yang berbeda (
bagi mereka yang lupa apa itu ). Misalkan bola itu sendiri di-host di media Synology terdaftar di domain FB dari hutan PSI. Tujuan: untuk memungkinkan pengguna domain di hutan lain memiliki akses ke konten bola ini, dan sangat selektif.
TK setelah beberapa saat tampak dalam bentuk berikut:
- 2 hutan: Hutan PSI, Hutan TG.

- Setiap hutan memiliki 3 domain: PSI (ZG, PSI, FB); TG (TG, HU, KC).
- Ada hubungan saling percaya antara hutan, Synology melihat semua kelompok Keamanan di semua hutan.
- Balon dan folder / subfolder harus memiliki akun admin domain FB dengan hak Kontrol Penuh
- Nama folder balon harus disistematisasikan. Manajemen sedang menegosiasikan ID proyek. Saya memutuskan untuk menetapkan nama kelompok Keamanan ke ID proyek.
- Folder proyek dalam bola sistem harus berisi struktur yang disiapkan sebelumnya dalam file .xlsx, dengan hak akses yang sesuai (R / RW / NA, di mana NA - tidak ada akses)

- Seharusnya dimungkinkan untuk membatasi hak pengguna / anggota grup dari satu proyek hanya pada direktori tertentu dari proyek ini. Pengguna mungkin tidak memiliki akses ke direktori / proyek lain, sesuai dengan keanggotaan grup.
- Saat membuat folder proyek, grup dalam domain yang sesuai dengan nama ID proyek yang sesuai harus dibuat secara otomatis.
Catatan untuk ToR
- Hubungan yang membangun kepercayaan bukan bagian dari TK
- ID Proyek berisi angka dan huruf Latin
- Peran pengguna proyek untuk semua domain memiliki nama generik
- File .xlsx dengan folder dan izin (matriks akses) disiapkan sebelum dimulainya seluruh proyek
- Saat mengimplementasikan proyek, dimungkinkan untuk membuat grup pengguna di domain yang sesuai
- Otomatisasi dicapai dengan menggunakan alat administrasi MS Windows standar
Implementasi TK
Setelah memformalkan persyaratan ini, jeda taktis diambil untuk menguji metode membuat direktori dan memberikan hak kepada mereka. Seharusnya hanya menggunakan PowerShell, agar tidak menyulitkan proyek. Seperti yang saya tulis sebelumnya, algoritma skrip tampak cukup sederhana:
- daftar grup dengan nama yang berasal dari ID proyek (misalnya, KC40587) dan peran terkait yang ditunjukkan dalam matriks akses: KC40587-EN- untuk insinyur; KC40587-PM - untuk manajer produk, dll.
- dapatkan SID dari grup yang dibuat
- mendaftarkan folder proyek dan set direktori yang sesuai (daftar subfolder tergantung pada bola di mana ia dibuat dan didefinisikan dalam matriks akses)
- menetapkan hak untuk grup sesuai dengan matriks akses ke subdirektori baru proyek.
Kesulitan yang ditemui pada tahap 1:
- kurangnya pemahaman tentang cara mengatur matriks akses dalam skrip (array multidimensi sekarang diterapkan, tetapi cara untuk mengisinya dicari berdasarkan konten file .xlsx file / akses matriks)

- ketidakmungkinan menetapkan hak akses pada bola SMB pada drive synology menggunakan PoSH (https://social.technet.microsoft.com/Forums/en-US/3f1a949f-0919-46f1-9e10-89256cf07e65/error-using-setacl-on-nas -share? forum = winserverpowershell), karena itu banyak waktu yang hilang dan saya harus menyesuaikan semuanya dengan skrip menggunakan utilitas pengeditan izin icacls, yang membutuhkan penciptaan gudang teks dan file cmd perantara.
Dalam mode saat ini, eksekusi file-file cmd dikendalikan secara manual, pada kenyataan kebutuhan untuk mendaftarkan folder untuk proyek.

Ternyata juga skrip harus dieksekusi, termasuk untuk mendaftarkan grup di hutan lain (mereka menggunakan istilah Cross-domains), dan rasionya bisa tidak hanya 1 banding satu, tetapi 1 untuk banyak.

Ini berarti bahwa kelompok-kelompok dari lintas-domain lain, termasuk hutan tetangga, sekarang dapat mengklaim akses ke sumber daya suatu domain. Untuk mencapai keseragaman, diputuskan untuk membuat struktur simetris dalam OU dari semua domain yang dilayani dari semua hutan (oval vertikal hitam). Seperti yang mereka katakan, dalam tentara semuanya harus jelek, tetapi seragam:

Jadi, ketika mendaftarkan proyek 80XXX di domain TG, skrip mengeksekusi:
1. Pembuatan OU yang sesuai (oval horisontal merah) di domain ini dan lintas-domain, yaitu domain-domain yang karyawannya harus memiliki akses ke sumber daya ini.
2. mengisi OU dengan grup dengan nama formulir <SRC_ domain> <DST_domain> <ID_project> -, di mana:
- SRC_ domain - domain-silang yang karyawannya akan memiliki akses ke sumber daya domain DST
- DST_domain - domain, ke sumber daya yang, pada kenyataannya, akses harus diberikan, yaitu, untuk yang semuanya dimulai
- <ID_project> - nomor proyek
- GULA - nama-nama peran yang tercantum dalam matriks akses.
3. membaca susunan SID dari semua grup dari semua domain yang terlibat dan menyimpannya untuk transfer data selanjutnya ke file yang menentukan hak untuk subfolder proyek tertentu
4. pembuatan file sumber (parameter / restore) dengan seperangkat izin untuk menggunakan utilitas icacKC dalam mode file yang dapat dieksekusi βicacKC" \\ as-nasNN \ KC \ Projects "/ restore C: \ Temp \ KC \ KC40XX \ KC40XX.txt"
5. membuat file CMD yang menggabungkan semua icacl yang diluncurkan untuk semua folder proyek

Seperti yang telah ditulis sebelumnya, file yang dapat dieksekusi diluncurkan secara manual dan evaluasi hasil eksekusi juga dilakukan secara manual.
Kesulitan yang ditemui pada akhirnya:
- jika folder proyek sudah diisi dengan sejumlah besar file, maka mengerjakan perintah icacls pada volume yang tersedia dapat memakan waktu yang cukup lama, dan dalam beberapa kasus menyebabkan kegagalan (misalnya, jika ada jalur file yang panjang);
- selain opsi / restore, saya harus menambahkan baris dengan opsi / reset jika folder tidak dibuat, tetapi ditransfer dari folder yang sudah ada sebelumnya, dengan hak warisan dimatikan dari root;
- bagian dari skrip untuk membuat grup harus dieksekusi pada as sembarang dari masing-masing hutan, masalahnya menyangkut akun administratif untuk setiap pohon.
Kesimpulan umum: sangat aneh bahwa belum ada utilitas dengan fungsi serupa di pasaran. Tampaknya mungkin untuk mengimplementasikan fungsionalitas tersebut berdasarkan portal Sharepoint.
Ini juga memberikan fakta yang tidak dapat dimengerti bahwa tidak mungkin untuk menggunakan utilitas PoSH untuk mengatur izin pada folder pada perangkat sinologi.
Akan, saya siap untuk berbagi skrip dengan membuat semacam proyek di github, jika menarik bagi siapa pun.