Set-Acl
Mengubah pendeskripsi keamanan item tertentu, seperti file atau kunci registri.
Sintaks
Set-Acl
[-Path] <String[]>
[-AclObject] <Object>
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Acl
[-InputObject] <PSObject>
[-AclObject] <Object>
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Acl
-LiteralPath <String[]>
[-AclObject] <Object>
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Cmdlet ini hanya tersedia di platform Windows.
Set-Acl
Cmdlet mengubah pendeskripsi keamanan item tertentu, seperti file atau kunci registri, agar sesuai dengan nilai dalam deskriptor keamanan yang Anda berikan.
Untuk menggunakan Set-Acl
, gunakan parameter Jalur atau InputObject untuk mengidentifikasi item yang deskriptor keamanannya ingin Anda ubah. Kemudian, gunakan parameter AclObject atau SecurityDescriptor untuk menyediakan deskriptor keamanan yang memiliki nilai yang ingin Anda terapkan. Set-Acl
menerapkan pendeskripsi keamanan yang disediakan. Ini menggunakan nilai parameter AclObject sebagai model dan mengubah nilai dalam deskriptor keamanan item agar sesuai dengan nilai dalam parameter AclObject .
Contoh
Contoh 1: Menyalin deskriptor keamanan dari satu file ke file lainnya
$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL
Perintah ini menyalin nilai dari pendeskripsi keamanan file Dog.txt ke pendeskripsi keamanan file Cat.txt. Ketika perintah selesai, deskriptor keamanan file Dog.txt dan Cat.txt identik.
Perintah pertama menggunakan Get-Acl
cmdlet untuk mendapatkan pendeskripsi keamanan file Dog.txt.
Operator penugasan (=
) menyimpan deskriptor keamanan dalam nilai variabel $DogACL.
Perintah kedua menggunakan Set-Acl
untuk mengubah nilai dalam ACL Cat.txt ke nilai di $DogACL
.
Nilai parameter Jalur adalah jalur ke file Cat.txt. Nilai parameter AclObject adalah model ACL, dalam hal ini, ACL Dog.txt sebagai disimpan dalam $DogACL
variabel.
Contoh 2: Gunakan operator alur untuk meneruskan deskriptor
Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"
Perintah ini hampir sama dengan perintah dalam contoh sebelumnya, kecuali bahwa perintah menggunakan operator alur (|
) untuk mengirim deskriptor keamanan dari Get-Acl
perintah ke Set-Acl
perintah.
Perintah pertama menggunakan Get-Acl
cmdlet untuk mendapatkan pendeskripsi keamanan file Dog.txt. Operator alur (|
) meneruskan objek yang mewakili pendeskripsi keamanan Dog.txt ke Set-Acl
cmdlet.
Perintah kedua menggunakan Set-Acl
untuk menerapkan pendeskripsi keamanan Dog.txt ke Cat.txt.
Ketika perintah selesai, ACL file Dog.txt dan Cat.txt identik.
Contoh 3: Menerapkan deskriptor keamanan ke beberapa file
$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl
Perintah ini menerapkan deskriptor keamanan dalam file File0.txt ke semua file teks di C:\Temp
direktori dan semua subdirektorinya.
Perintah pertama mendapatkan pendeskripsi keamanan file File0.txt di direktori saat ini dan menggunakan operator penugasan (=
) untuk menyimpannya dalam $NewACL
variabel.
Perintah pertama dalam alur menggunakan cmdlet Get-ChildItem untuk mendapatkan semua file teks di C:\Temp
direktori. Parameter Berulang memperluas perintah ke semua subdirektori .C:\temp
Parameter Sertakan membatasi file yang diambil untuk file dengan .txt
ekstensi nama file. Parameter Force mendapatkan file tersembunyi, yang jika tidak akan dikecualikan. (Anda tidak dapat menggunakan c:\temp\*.txt
, karena parameter Berulang berfungsi pada direktori, bukan pada file.)
Operator alur (|
) mengirim objek yang mewakili file yang diambil ke Set-Acl
cmdlet, yang menerapkan deskriptor keamanan dalam parameter AclObject ke semua file dalam alur.
Dalam praktiknya, yang terbaik adalah menggunakan parameter WhatIf dengan semua Set-Acl
perintah yang dapat memengaruhi lebih dari satu item. Dalam hal ini, perintah kedua dalam alur adalah Set-Acl -AclObject $NewAcl -WhatIf
. Perintah ini mencantumkan file yang akan dipengaruhi oleh perintah. Setelah meninjau hasilnya, Anda dapat menjalankan perintah lagi tanpa parameter WhatIf .
Contoh 4: Menonaktifkan pewarisan dan mempertahankan aturan akses yang diwariskan
$NewAcl = Get-Acl -Path "C:\Pets\Dog.txt"
$isProtected = $true
$preserveInheritance = $true
$NewAcl.SetAccessRuleProtection($isProtected, $preserveInheritance)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl
Perintah ini menonaktifkan pewarisan akses dari folder induk, sambil tetap mempertahankan aturan akses yang diwariskan yang ada.
Perintah pertama menggunakan Get-Acl
cmdlet untuk mendapatkan pendeskripsi keamanan file Dog.txt.
Selanjutnya, variabel dibuat untuk mengonversi aturan akses yang diwariskan ke aturan akses eksplisit. Untuk melindungi aturan akses yang terkait dengan ini dari pewarisan, atur $isProtected
variabel ke $true
. Untuk mengizinkan pewarisan, atur $isProtected
ke $false
. Untuk informasi selengkapnya, lihat mengatur perlindungan aturan akses.
Atur $preserveInheritance
variabel ke $true
untuk mempertahankan aturan akses yang diwariskan atau $false
untuk menghapus aturan akses yang diwariskan. Kemudian perlindungan aturan akses diperbarui menggunakan metode SetAccessRuleProtection().
Perintah terakhir menggunakan Set-Acl
untuk menerapkan pendeskripsi keamanan ke Dog.txt. Ketika perintah selesai, ACL Dog.txt yang diwarisi dari folder Hewan Peliharaan akan diterapkan langsung ke Dog.txt, dan kebijakan akses baru yang ditambahkan ke Hewan Peliharaan tidak akan mengubah akses ke Dog.txt.
Contoh 5: Berikan Administrator Kontrol Penuh file
$NewAcl = Get-Acl -Path "C:\Pets\Dog.txt"
# Set properties
$identity = "BUILTIN\Administrators"
$fileSystemRights = "FullControl"
$type = "Allow"
# Create new rule
$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
$fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList
# Apply new rule
$NewAcl.SetAccessRule($fileSystemAccessRule)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl
Perintah ini akan memberikan kontrol penuh grup BUILTIN\Administrators atas file Dog.txt.
Perintah pertama menggunakan Get-Acl
cmdlet untuk mendapatkan pendeskripsi keamanan file Dog.txt.
Variabel berikutnya dibuat untuk memberikan kontrol penuh grup BUILTIN\Administrators atas file Dog.txt. Variabel $identity
diatur ke nama akun pengguna. Variabel $fileSystemRights
diatur ke FullControl, dan dapat menjadi salah satu nilai FileSystemRights yang menentukan jenis operasi yang terkait dengan aturan akses. Variabel $type
diatur ke "Izinkan" untuk menentukan apakah akan mengizinkan atau menolak operasi. Variabel $fileSystemAccessRuleArgumentList
adalah daftar argumen yang akan diteruskan saat membuat objek FileSystemAccessRule baru. Kemudian objek FileSystemAccessRule baru dibuat, dan objek FileSystemAccessRule diteruskan ke metode SetAccessRule(), menambahkan aturan akses baru.
Perintah terakhir menggunakan Set-Acl
untuk menerapkan pendeskripsi keamanan ke Dog.txt. Ketika perintah selesai, grup BUILTIN\Administrators akan memiliki kontrol penuh atas Dog.txt.
Parameter
-AclObject
Menentukan ACL dengan nilai properti yang diinginkan. Set-Acl
mengubah ACL item yang ditentukan oleh parameter Jalur atau InputObject agar sesuai dengan nilai dalam objek keamanan yang ditentukan.
Anda dapat menyimpan output Get-Acl
perintah dalam variabel lalu menggunakan parameter AclObject untuk meneruskan variabel, atau mengetik Get-Acl
perintah.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ClearCentralAccessPolicy
Menghapus kebijakan akses pusat dari item yang ditentukan.
Dimulai di Windows Server 2012, administrator dapat menggunakan Direktori Aktif dan Kebijakan Grup untuk mengatur kebijakan akses pusat bagi pengguna dan grup. Untuk informasi selengkapnya, lihat Kontrol Akses Dinamis: Gambaran Umum Skenario.
Parameter ini diperkenalkan di Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Menghilangkan item yang ditentukan. Nilai parameter ini memenuhi syarat parameter Path . Masukkan elemen atau pola jalur, seperti *.txt
. Kartubebas diizinkan.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Menentukan filter dalam format atau bahasa penyedia. Nilai parameter ini memenuhi syarat parameter Path . Sintaks filter, termasuk penggunaan wildcard, tergantung pada penyedia. Filter lebih efisien daripada parameter lain, karena penyedia menerapkannya saat mengambil objek, daripada meminta PowerShell memfilter objek setelah diambil.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
Hanya mengubah item yang ditentukan. Nilai parameter ini memenuhi syarat parameter Path .
Masukkan elemen atau pola jalur, seperti *.txt
. Kartubebas diizinkan.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Mengubah pendeskripsi keamanan objek yang ditentukan. Masukkan variabel yang berisi objek atau perintah yang mendapatkan objek.
Anda tidak dapat menyalurkan objek yang akan diubah ke Set-Acl
. Sebagai gantinya , gunakan parameter InputObject secara eksplisit dalam perintah .
Parameter ini diperkenalkan di Windows PowerShell 3.0.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Mengubah pendeskripsi keamanan item yang ditentukan. Tidak seperti Path, nilai parameter LiteralPath digunakan persis seperti yang ditik. Tidak ada karakter yang ditafsirkan sebagai kartubebas. Jika jalur menyertakan karakter escape, sertakan dalam tanda kutip tunggal ('
).
Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape.
Parameter ini diperkenalkan di Windows PowerShell 3.0.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Passthru
Mengembalikan objek yang mewakili deskriptor keamanan yang diubah. Secara default, cmdlet ini tidak menghasilkan output apa pun.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Mengubah pendeskripsi keamanan item yang ditentukan. Masukkan jalur ke item, seperti jalur ke file atau kunci registri. Kartubebas diizinkan.
Jika Anda meneruskan objek keamanan ke Set-Acl
(baik dengan menggunakan parameter AclObject atau SecurityDescriptor atau dengan meneruskan objek keamanan dari Get-Acl ke Set-Acl
), dan Anda menghilangkan parameter Jalur (nama dan nilai), Set-Acl
menggunakan jalur yang disertakan dalam objek keamanan.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
Anda dapat menyalurkan objek ACL ke cmdlet ini.
Anda dapat menyalurkan deskriptor keamanan ke cmdlet ini.
Output
None
Secara default, cmdlet ini tidak mengembalikan output.
Saat Anda menggunakan parameter PassThru , cmdlet ini mengembalikan objek keamanan. Jenis objek keamanan tergantung pada jenis item.
Catatan
Cmdlet ini hanya tersedia di platform Windows.
Set-Acl
Cmdlet didukung oleh sistem file PowerShell dan penyedia registri. Dengan demikian, Anda dapat menggunakannya untuk mengubah deskriptor keamanan file, direktori, dan kunci registri.
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk