Saya ingin dapat mengatur akun IIS untuk situs web baru untuk memodifikasi izin. Saya memiliki skrip berikut:
function Set-ModifyPermission ($directory, $username, $domain = 'IIS APPPOOL') {
$inherit = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit, ObjectInherit"
$propagation = [system.security.accesscontrol.PropagationFlags]"None"
$acl = Get-Acl $directory
$user = New-Object System.Security.Principal.NTAccount($domain, $username )
$accessrule = New-Object system.security.AccessControl.FileSystemAccessRule($user, "Modify", $inherit, $propagation, "Allow")
$acl.AddAccessRule($accessrule)
set-acl -aclobject $acl $directory
}
Namun, ketika saya menjalankannya, saya mendapatkan kesalahan seperti ini:
Set-Acl: Hubungan trust antara workstation ini dan domain primer gagal.
Saya pikir ini karena IIS APPPOOL
bukan domain asli, tetapi merupakan awalan aneh pada akun sejenis. Apakah ada cara yang benar untuk merujuk ke akun itu sehingga saya dapat membuat ini berfungsi?
AddAccessRule
: "Beberapa atau semua referensi identitas tidak dapat diterjemahkan." Ada ide apa itu?icacls
bekerja dengan baik untuk saya, terima kasih atas bantuannya! Saya berakhir dengan tubuh fungsi (parameter yang sama seperti di atas) sedangcmd /c icacls "$directory" /grant ("$domain\$username" + ':(OI)(CI)M') /t /c /q
(dengan/t
bekerja secara rekursif pada direktori,/c
untuk terus mencari kesalahan, dan/q
untuk menekan pesan sukses untuk setiap file).Sesuatu seperti ini harus melakukan trik untuk Anda. Itu harus dapat menyelesaikan IIS APPPOOl \ Apa pun juga ...
sumber
SetAccessRule
: "Beberapa atau semua referensi identitas tidak dapat diterjemahkan."Set-AclOnPath .\Website "IIS APPPOOL\website.dev"
, meskipun ketika saya mencobanya lagi, saya mendapatkan kesalahan yang berbeda, "Hubungan kepercayaan antara workstation ini dan domain primer gagal."Berikut ini berfungsi di Windows 2012 untuk mendapatkan SID untuk situs IIS. Membutuhkan Penyedia IIS yang menggunakan modul PowerAdellration WebAdministration, tetapi artikel ini menunjukkan itu akan bekerja pada Windows 2008R2.
sumber
AddAccessRule
'dengan argumen' 1 ':' Beberapa atau semua referensi identitas tidak dapat diterjemahkan. '"NTAccount
.Import-Module WebAdministration
untuk mendapatkan drive IIS dari penyedia IIS.Pada IIS 10 / Windows 10 / Server 2016, modul WebAdministration sudah usang dan kami diharapkan menggunakan modul IISAdministration Powershell yang baru. Berikut cara mendapatkan kumpulan aplikasi SID yang diterjemahkan ke pengguna virtual menggunakan modul baru:
sumber
Berikut ini berfungsi untuk saya di Windows 2012, tidak bisa membuat contoh lain berfungsi:
sumber
$acl.SetAccessRuleProtection($True, $False)
karena param terakhir di sini adalah PreserveInheritance. Terima kasih telah memposting ini!