| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/ |
Upload File : |
'******************************************************************************
'Microsoft Confidential. � 2002-2003 Microsoft Corporation. All rights reserved.
'
' This file may contain preliminary information or inaccuracies,
' and may not correctly represent any associated Microsoft
' Product as commercially released. All Materials are provided entirely
' �AS IS.� To the extent permitted by law, MICROSOFT MAKES NO
' WARRANTY OF ANY KIND, DISCLAIMS ALL EXPRESS, IMPLIED AND STATUTORY
' WARRANTIES, AND ASSUMES NO LIABILITY TO YOU FOR ANY DAMAGES OF
' ANY TYPE IN CONNECTION WITH THESE MATERIALS OR ANY INTELLECTUAL PROPERTY IN THEM.
'******************************************************************************
Option Explicit
Wscript.Echo ""
Wscript.Echo "REGISTER_APP.VBS version 1.6 for Windows Server 2008"
Wscript.Echo "Copyright (C) Microsoft Corporation 2002-2003. All rights reserved."
Wscript.Echo ""
'******************************************************************************
' Parse command line arguments
'******************************************************************************
Dim Args
Set Args = Wscript.Arguments
If Args.Count < 1 Then
PrintsUsage
End If
Dim ProviderName, ProviderDLL, ProviderDescription
If Args.Item(0) = "-register" Then
If Args.Count <> 4 Then PrintsUsage
ProviderName = Args.Item(1)
ProviderDLL = Args.Item(2)
ProviderDescription = Args.Item(3)
UninstallProvider
InstallProvider
Wscript.Quit 0
End If
If Args.Item(0) = "-unregister" Then
If Not Args.Count = 2 Then PrintsUsage
ProviderName = Args.Item(1)
UninstallProvider
Wscript.Quit 0
End If
' Wrong options?
PrintsUsage
Wscript.Quit 0
'******************************************************************************
' Prints the usage
'******************************************************************************
Sub PrintsUsage
Wscript.Echo "Usage:"
Wscript.Echo ""
Wscript.Echo " 1) Registering a VSS/VDS Provider as a COM+ application:"
Wscript.Echo " CScript.exe " & Wscript.ScriptName & " -register <Provider_Name> <Provider.DLL> <Provider_Description>"
Wscript.Echo ""
Wscript.Echo " 2) Unregistering a COM+ application associated with a VSS/VDS provider:"
Wscript.Echo " CScript.exe " & Wscript.ScriptName & " -unregister <Provider_Name>"
Wscript.Echo ""
Wscript.Quit 1
End Sub
'******************************************************************************
' Installs the Provider
'******************************************************************************
Sub InstallProvider
On Error Resume Next
Wscript.Echo "Creating a new COM+ application:"
Wscript.Echo "- Creating the catalog object "
Dim cat
Set cat = CreateObject("COMAdmin.COMAdminCatalog")
CheckError 101
wscript.echo "- Get the Applications collection"
Dim collApps
Set collApps = cat.GetCollection("Applications")
CheckCollectionError 102, cat
Wscript.Echo "- Populate..."
collApps.Populate
CheckCollectionError 103, collApps
Wscript.Echo "- Add new application object"
Dim app
Set app = collApps.Add
CheckCollectionError 104, collApps
Wscript.Echo "- Set app name = " & ProviderName & " "
app.Value("Name") = ProviderName
CheckObjectError 105, collApps, app
Wscript.Echo "- Set app description = " & ProviderDescription & " "
app.Value("Description") = ProviderDescription
CheckObjectError 106, collApps, app
' Only roles added below are allowed to call in.
Wscript.Echo "- Set app access check = true "
app.Value("ApplicationAccessChecksEnabled") = 1
CheckObjectError 107, collApps, app
' Encrypting communication
Wscript.Echo "- Set encrypted COM communication = true "
app.Value("Authentication") = 6
CheckObjectError 108, collApps, app
' Secure references
Wscript.Echo "- Set secure references = true "
app.Value("AuthenticationCapability") = 2
CheckObjectError 109, collApps, app
' Do not allow impersonation
Wscript.Echo "- Set impersonation = false "
app.Value("ImpersonationLevel") = 2
CheckObjectError 110, collApps, app
Wscript.Echo "- Save changes..."
collApps.SaveChanges
CheckCollectionError 111, collApps
wscript.echo "- Create Windows service running as Local System"
cat.CreateServiceForApplication ProviderName, ProviderName , "SERVICE_AUTO_START", "SERVICE_ERROR_NORMAL", "", ".\localsystem", "", 0
CheckCollectionError 112, cat
wscript.echo "- Add the DLL component"
cat.InstallComponent ProviderName, ProviderDLL , "", ""
CheckCollectionError 113, cat
'
' Add the new role for the Local SYSTEM account
'
wscript.echo "Secure the COM+ application:"
wscript.echo "- Get roles collection"
Dim collRoles
Set collRoles = collApps.GetCollection("Roles", app.Key)
CheckCollectionError 120, cat
wscript.echo "- Populate..."
collRoles.Populate
CheckCollectionError 121, collRoles
wscript.echo "- Add new role"
Dim role
Set role = collRoles.Add
CheckCollectionError 122, collRoles
wscript.echo "- Set name = Administrators "
role.Value("Name") = "Administrators"
CheckObjectError 123, collRoles, role
wscript.echo "- Set description = Administrators group "
role.Value("Description") = "Administrators group"
CheckObjectError 124, collRoles, role
wscript.echo "- Save changes ..."
collRoles.SaveChanges
CheckCollectionError 125, collRoles
'
' Add users into role
'
wscript.echo "Granting user permissions:"
Dim collUsersInRole
Set collUsersInRole = collRoles.GetCollection("UsersInRole", role.Key)
CheckCollectionError 130, collRoles
wscript.echo "- Populate..."
collUsersInRole.Populate
CheckCollectionError 131, collUsersInRole
wscript.echo "- Add new user"
Dim user
Set user = collUsersInRole.Add
CheckCollectionError 132, collUsersInRole
wscript.echo "- Searching for the Administrators account using WMI..."
' Get the Administrators account domain and name
Dim strQuery
strQuery = "select * from Win32_Account where SID='S-1-5-32-544' and localAccount=TRUE"
Dim objSet
set objSet = GetObject("winmgmts:").ExecQuery(strQuery)
CheckError 133
Dim obj, Account
for each obj in objSet
set Account = obj
exit for
next
wscript.echo "- Set user name = .\" & Account.Name & " "
user.Value("User") = ".\" & Account.Name
CheckObjectError 140, collUsersInRole, user
wscript.echo "- Add new user"
Set user = collUsersInRole.Add
CheckCollectionError 141, collUsersInRole
wscript.echo "- Set user name = Local SYSTEM "
user.Value("User") = "NT AUTHORITY\SYSTEM"
CheckObjectError 142, collUsersInRole, user
wscript.echo "- Save changes..."
collUsersInRole.SaveChanges
CheckCollectionError 143, collUsersInRole
Set app = Nothing
Set cat = Nothing
Set role = Nothing
Set user = Nothing
Set collApps = Nothing
Set collRoles = Nothing
Set collUsersInRole = Nothing
set objSet = Nothing
set obj = Nothing
Wscript.Echo "Done."
On Error GoTo 0
End Sub
'******************************************************************************
' Uninstalls the Provider
'******************************************************************************
Sub UninstallProvider
On Error Resume Next
Wscript.Echo "Unregistering the existing application..."
wscript.echo "- Create the catalog object"
Dim cat
Set cat = CreateObject("COMAdmin.COMAdminCatalog")
CheckError 201
wscript.echo "- Get the Applications collection"
Dim collApps
Set collApps = cat.GetCollection("Applications")
CheckCollectionError 202, cat
wscript.echo "- Populate..."
collApps.Populate
CheckCollectionError 203, collApps
wscript.echo "- Search for " & ProviderName & " application..."
Dim numApps
numApps = collApps.Count
Dim i
For i = numApps - 1 To 0 Step -1
If collApps.Item(i).Value("Name") = ProviderName Then
collApps.Remove(i)
CheckCollectionError 204, collApps
WScript.echo "- Application " & ProviderName & " removed!"
End If
Next
wscript.echo "- Saving changes..."
collApps.SaveChanges
CheckCollectionError 205, collApps
Set collApps = Nothing
Set cat = Nothing
Wscript.Echo "Done."
On Error GoTo 0
End Sub
'******************************************************************************
' Sub CheckError
'******************************************************************************
Sub CheckError(exitCode)
If Err = 0 Then Exit Sub
DumpVBScriptError exitCode
Wscript.Quit exitCode
End Sub
'******************************************************************************
' Sub CheckCollectionError
'******************************************************************************
Sub CheckCollectionError(exitCode, coll)
If Err = 0 Then Exit Sub
DumpVBScriptError exitCode
DumpComPlusError(coll.GetCollection("ErrorInfo"))
Wscript.Quit exitCode
End Sub
'******************************************************************************
' Sub CheckObjectError
'******************************************************************************
Sub CheckObjectError(exitCode, coll, object)
If Err = 0 Then Exit Sub
DumpVBScriptError exitCode
' DumpComPlusError(coll.GetCollection("ErrorInfo", object.Key))
DumpComPlusError(coll.GetCollection("ErrorInfo"))
Wscript.Quit exitCode
End Sub
'******************************************************************************
' Sub DumpVBScriptError
'******************************************************************************
Sub DumpVBScriptError(exitCode)
WScript.Echo vbNewLine & "ERROR:"
WScript.Echo "- Error code: " & Err & " [0x" & Hex(Err) & "]"
WScript.Echo "- Exit code: " & exitCode
WScript.Echo "- Description: " & Err.Description
WScript.Echo "- Source: " & Err.Source
WScript.Echo "- Help file: " & Err.Helpfile
WScript.Echo "- Help context: " & Err.HelpContext
End Sub
'******************************************************************************
' Sub DumpComPlusError
'******************************************************************************
Sub DumpComPlusError(errors)
errors.Populate
WScript.Echo "- COM+ Errors detected: (" & errors.Count & ")"
Dim error
Dim I
For I = 0 to errors.Count - 1
Set error = errors.Item(I)
WScript.Echo " * (COM+ ERROR " & I & ") on " & error.Value("Name")
WScript.Echo " ErrorCode: " & error.Value("ErrorCode") & " [0x" & Hex(error.Value("ErrorCode")) & "]"
WScript.Echo " MajorRef: " & error.Value("MajorRef")
WScript.Echo " MinorRef: " & error.Value("MinorRef")
Next
End Sub