You cannot clear the Enable Authentication check box for a COM+ (Component Object Model) library application in Component Services on Windows Server 2003.
This behavior is the result of conflict in the data update process that occurs between the GUI and the COM+ catalog.
Microsoft had written the ChangeAuthentication.vbs script to modify the authentication property of a COM+ library application.
The syntax for using the ChangeAuthentication.vbs script is:
cscript ChangeAuthentication.vbs <ApplicationName> <on/off>
Where:
<ApplicationName> is the COM+ library application for which you want to change the authentication property. <on/off> is on to enable authentication and off to disable authentication.NOTE: If you use ChangeAuthentication.vbs to disable authentication, the user interface for the Component Services tool will still display a selected Enable Authentication check box.
ChangeAuthentication.vbs contains:
Option Explicit Dim AppName Dim oArgs Dim lRet Dim Switch Set oArgs = WScript.Arguments If oArgs.Length 2 Then WScript.Echo "usage:" WScript.Echo ">cscript ChangeAuthentication.vbs" Else AppName = oArgs(0) Switch = oArgs(1) lRet = EnableAuthentication(AppName, Switch) End If '==================================================== ' EnableAuthentication ' Param stAppName COM+ Application name ' Param stSwitch on - check "Authentication", off - uncheck '
==================================================== Function EnableAuthentication(stAppName, stSwitch) Dim oCatalog Dim oApps Dim oApp Set oCatalog = CreateObject("ComAdmin.COMAdminCatalog") Set oApps = oCatalog.GetCollection("Applications") oApps.Populate WScript.Echo("Searching " & stAppName & "...") For Each oApp In oApps If UCase(oApp.Name) = UCase(stAppName) Then WScript.Echo("Found " & stAppName & ". ") Exit For Else ' WScript.Echo("AppName " & oApp.Name & " No Match.") End If Next If oApp.Value("Activation") 0 Then WScript.Echo("AppName " & oApp.Name & " is not Library Application.") EnableAuthentication = -1 Exit Function End If If UCase(stSwitch) = UCase("on") Then oApp.Value("Authentication") = 0 ElseIf UCase(stSwitch) = UCase("off") Then oApp.Value("Authentication") = 1 Else WScript.Echo("Switch is invalid.") EnableAuthentication = -1 Exit Function End If oApps.SaveChanges() WScript.Echo("Finished.") EnableAuthentication = 0 End Function
0 comments
Hide comments