Powershell COM+设置

5
我正在尝试使用PowerShell COMAdmin.COMAdminCatalog设置以下值,但是我找不到下图中红色部分的设置。希望能得到帮助。 Value looking to set 谢谢。
2个回答

5
对于所涉及的属性,请参见身份验证属性访问级别检查属性,针对应用程序集合下的COM+管理集合
有关如何设置身份验证级别属性的VBScript示例,请参见通过vbs脚本更改现有COM+应用程序标识的答案
将其转换为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()

嗨,谢谢。我必须将身份验证设置为1以获取“无”,并将访问检查级别设置为0,但更多地是寻找我必须设置的值。 - Bruce227
好的,您可以从Applications Collection文档链接中获取所有的值。 - Randy Levy
让我感到困扰(与 Microsoft 相关的)其中一件事是,在屏幕上的标签和面板(文本)上没有设置常量(AccessChecksLevel)的关联。你必须进行实验来找出哪个是哪个。 :< - granadaCoder
1
我希望在文档中看到类似以下内容:“ApplicationAccessChecksEnabled” = <# 安全选项卡,授权面板,“强制对该应用进行访问检查” #>。 - granadaCoder
1
TSQL复制也是同样的情况。有100多个设置...常量与“屏幕上的文本”之间的区别并不十分清晰。 - 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"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接