我正在尝试使用PowerShell脚本将用户 IIS AppPool \ ASP.NET v4.0 添加到性能监视器用户组中,以便能够从ASP.NET应用程序使用自定义性能计数器。但是,我无法弄清楚如何使用ADSI解决自动创建的ASP.NET用户。
这对我有用:
$computer = $env:COMPUTERNAME;
$user = [ADSI]"WinNT://$computer/Administrator,user"
$groupToAddTo = "TestGroup"
$parent = [ADSI]"WinNT://$computer/$groupToAddTo,group"
$parent.Add($user.Path)
但是,我无法弄清楚如何找到ASP.NET v4.0用户:
$computer = $env:COMPUTERNAME;
# $user = [ADSI]"WinNT://$computer/IIS AppPool/ASP.NET v4.0,user" # <-- Doesn't work
$groupToAddTo = "TestGroup"
$parent = [ADSI]"WinNT://$computer/$groupToAddTo,group"
$parent.Add($user.Path)
有关如何使用ADSI解决该用户的任何线索?或者,使用Powershell或其他命令行工具实现我想要的任何其他出色方法? GUI工作正常,但自动化是关键。
答案 0 :(得分:13)
以下PowerShell脚本将添加应用程序池&#34; ASP.NET v4.0&#34;小组&#34;性能监视器用户&#34;
$group = [ADSI]"WinNT://$Env:ComputerName/Performance Monitor Users,group"
$ntAccount = New-Object System.Security.Principal.NTAccount("IIS APPPOOL\ASP.NET v4.0")
$strSID = $ntAccount.Translate([System.Security.Principal.SecurityIdentifier])
$user = [ADSI]"WinNT://$strSID"
$group.Add($user.Path)
与net localgroup
命令不同,此脚本适用于长度超过20个字符的应用程序池名称。