2011-06-28 41 views
5

我想使用powershell COMAdmin.COMAdminCatalog设置以下值,但我无法找到红色下方的设置。任何帮助,将不胜感激。Powershell COM +设置

Value looking to set

感谢

回答

5

对于看到Authentication propertyCOM+ Administration CollectionsAccessLevelChecks propertyApplications Collection问题的性质。

有关如何设置Authentication Level属性的VBScript示例,请参阅changing existing COM+ applications identity via vbs script的答案。

它应该是相当直接转换到PowerShell。这是我的猜测:

$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog 
$apps = $comAdmin.GetCollection("Applications") 
$apps.Populate(); 
$app = $apps | Where-Object {$_.Name -eq "MyAppName"} 

# Set Authentication to Packet Authentication 
$app.Value("Authentication") = 4 

# Set Security Level to Process and Component level 
$app.Value("AccessChecksLevel") = 1 

$apps.SaveChanges() 
+0

嗨,谢谢。我必须将身份验证设置为1代表'无',0代表访问级别,但更多地寻找我必须设置的值。 – Bruce227

+0

好的,您可以从Applications Collection文档链接中获取所有值。 –

+0

推动我坚果(使用微软)的事情之一是没有设置常量(AccessChecksLevel)与屏幕上的标签和面板(文本)的关联。你必须试着弄清楚哪个是哪个。 :< – granadaCoder

4

这已经回答了,但这里是我的“创建新的COM +应用程序和设置属性”脚本。

$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog 
$apps = $comAdmin.GetCollection("Applications") 
$apps.Populate(); 


$newComPackageName = "MyFirstCOMPackage" 

$appExistCheckApp = $apps | Where-Object {$_.Name -eq $newComPackageName} 

if($appExistCheckApp) 
{ 
    $appExistCheckAppName = $appExistCheckApp.Value("Name") 
    "This COM+ Application already exists : $appExistCheckAppName" 
} 
Else 
{ 
    $newApp1 = $apps.Add() 
    $newApp1.Value("Name") = $newComPackageName 
    $newApp1.Value("ApplicationAccessChecksEnabled") = 0 <# Security Tab, Authorization Panel, "Enforce access checks for this application #> 
    $saveChangesResult = $apps.SaveChanges() 
    "Results of the SaveChanges operation : $saveChangesResult" 
}