Bir dosyanın izinlerini diğerine çoğaltmak istiyorum. Verileri kopyalamak istemiyorum, sadece izinleri.
Örneğin, yeni bir dosya oluşturdum ve zaten var olan başka bir dosyayla aynı izinlere sahip olmasını istiyorum.
Bir dosyanın izinlerini diğerine çoğaltmak istiyorum. Verileri kopyalamak istemiyorum, sadece izinleri.
Örneğin, yeni bir dosya oluşturdum ve zaten var olan başka bir dosyayla aynı izinlere sahip olmasını istiyorum.
Yanıtlar:
Bunu icacls ve bir metin düzenleyici ile birkaç adımda yapabilirsiniz .
İlk önce orijinal dosyanın izinlerini kaydetmelisiniz
icacls C:\test\file1.bin /save perms.txt
perms.txt
çalıştırdığınız klasörde yeni oluşturduğunuz dosyayı düzenlemeniz gerekir icacls
. Dosya şu şekilde görünmelidir:
file1.bin
D:AI(A;;0x1301bf;;;BU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)
2. sıradaki tüm şeyleri göz ardı edebilirsiniz, tek önemsediğimiz ilk sıra. file1.bin
Yeni dosya adınızı değiştirin ve file2.bin
dosyayı kaydedin.
Şimdi sadece 2. dosyadaki dosya izinlerini geri yüklemeniz gerekiyor, bu sefer dosya adını eklemediğimizi unutmayın. (" Başvurulan tüm ayrıcalıklar veya gruplar arayana atanmaz. " Şeklinde bir hata alırsanız , programı yükseltilmiş bir komut isteminde yeniden çalıştırın.)
icacls C:\test\ /restore perms.txt
File.GetAccessControl()
veFile.SetAccessControl()
Toplu olarak yapmak için (bir alt klasörden veya bir sürücünün tüm klasörlerini başka bir sürücüdeki aynı klasöre / dosya darlığına kopyalayın), cpdacls.bat
şu içeriğe sahip bir dosya oluşturun:
@echo off
for /r %1 %%f in (.) do call :icacls_one %%f %2
goto :eof
:icacls_one
icacls %1\*.* /save %TEMP%\perms.txt
icacls %2.%~pnx1 /restore %TEMP%\perms.txt
del /q %TEMP%\perms.txt
Ve sonra böyle çalıştırın cpdacls.bat e:\ f:\
.
Hedef klasördeki klasör yapısının, kaynak klasör olarak belirttiğiniz alt klasöre bağlı olarak , kök klasöründen alınan kaynak klasördeki klasör yapısıyla aynı olması gerektiğini unutmayın.
Şimdiye kadarki en kolay yol, PowerShell'i kullanmak ve çalıştırmaktır:
Get-Acl .\file1 | Set-Acl .\file2