grup

2013-08-13 32 views
9

Ben PowerShell ile komut dosyasına kullanıcı ekleme eylemini çalışıyorum IIS AppPool \ ASP.NET Performance Monitor Users grubuna v4.0 Bir ASP.NET uygulamasından özel performans sayaçlarını kullanabilmek. Ancak, otomatik olarak oluşturulan ASP.NET kullanıcısını ADSI kullanarak nasıl ele alacağımı anlayamıyorum. grup

Bu

benim için çalışıyor:

$computer = $env:COMPUTERNAME; 

$user = [ADSI]"WinNT://$computer/Administrator,user" 
$groupToAddTo = "TestGroup" 

$parent = [ADSI]"WinNT://$computer/$groupToAddTo,group" 
$parent.Add($user.Path) 

Ancak, ASP.NET v4.0 kullanıcıyı bulmak için nasıl bilemiyorum: o nasıl ele alınacağı konusunda

$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) 

Herhangi ipuçları ADSI kullanan kullanıcı? Ya da, Powershell veya diğer komut satırı araçlarını kullanarak istediğimi elde etmenin diğer parlak yolları? GUI iyi çalışıyor, ancak otomasyon buradaki anahtardır.

+3

Bu, powershell değil, aşağıdaki komut satırından çalışır: 'net localgroup" Performans İzleyicisi Kullanıcıları "" IIS AppPool \ ASP.NET v4.0 "/ ADD' – Artomegus

+0

Elbette! Çok teşekkürler. Bunu biliyordum, neden düşünmedim? Ben hala saf ADSI ile nasıl yapılacağını bilmek isterdim, ama şimdiki sorun şu anda çözüldü. –

+1

Maalesef "net localgroup" yalnızca uygulama havuzu adı 20 karakter veya daha azsa çalışır. Bunun, normal kullanıcı adının maksimum uzunluğunun 20 karakter olduğu varsayılmaktadır. Havuz adı bundan daha uzunsa, kullanım talimatlarını görüntüler ve hiçbir şey yapmaz. Havuz adının ilk 20 karakterini sağlamaya çalışırsanız, kullanıcı veya grubun mevcut olmadığını size bildirir. –

cevap

12

"Performans İzleyicisi Kullanıcıları" net localgroup komutu farklı

$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) 

grubuna uygulama havuzu "ASP.NET v4.0" katacak aşağıdaki PowerShell komut, bu komut uygulaması havuzu adları ile iyi çalışır 20 karakterden uzun.

+2

Bu cevap olarak kabul edilmelidir. – JamesQMurphy

+0

@ErikABrandstadmoen Bunu cevap olarak kabul eder misiniz? Teşekkürler. –