Server Management - Systems Insight Manager
1832920 Members
3042 Online
110048 Solutions
New Discussion

Re: Best method for deploying HP agents to servers with no agents installed?

 
Robert_189
Occasional Contributor

Best method for deploying HP agents to servers with no agents installed?

Basically looking for the easiest method for deploying latest hp agents to all servers in my environmnent wether or not the server currently has agents installed or not. I am running SIM 4.2, i do see the option to deploy support pack to servers that are ALREADY being managed or detected by the SIM server but dont see how I deploy to any other servers. If not i guess only other option would be to package the install and use a 3rd party deployment tool.

Thanks
4 REPLIES 4
David Claypool
Honored Contributor

Re: Best method for deploying HP agents to servers with no agents installed?

You're looking for "Initial ProLiant Support Pack Install" on the Deploy pull-down. This is for Windows systems only and it will prompt you for Windows credentials before deploying. Nothing is required on the systems to "receive" the PSP. You must have OpenSSH configured and trusting on your HP SIM server (but it isn't required anywhere else).

Cosmo
Occasional Contributor

Re: Best method for deploying HP agents to servers with no agents installed?

If you have many servers to deploy VCA to, try my attached VBScript.

Tip: If you experience some servers not appearing within SIM after running the script & performing a 'Autocovery'. Try manually starting the 'HP Version Control Agent' Service on those servers.
Derek_31
Valued Contributor

Re: Best method for deploying HP agents to servers with no agents installed?

Where's the script? :)
Cosmo
Occasional Contributor

Re: Best method for deploying HP agents to servers with no agents installed?

The attached file button doesn't work, so I'll copy it below.

Note: The three SIM components must be preconfigured to point to the SIM server along with the SIM Admin account password.

Sorry, the formatting is thrown out when submitting into this HTML page:
' ****************************************************************************************************************
' Purpose : Install HP's Version Control Agent and fixes the DNS record auto register problem (as stated in
' : MS KB300684) on remote servers
' Inputfile : '.\Servers_VCA.txt" file containing servers to be updated
' Author : Cosmo Kramer
' Date : Feb 2005
' Note : The script turns 'Driver Signing' on each server to 'Ignore' to overcome the pop-up dialog box
' Setupc Return Codes : 0 = Success
' : 1 = Error occurred that prevented a succeful installation
' : 2 = One or more components failed to installation
' : 3 = Failed to launch component due to user problem (ie. command line

syntax)
' ****************************************************************************************************************
Const ForReading = 1
Const RegHKLM = &H80000002 ' HKLM Hive
Const strKeyPath1A = "SOFTWARE\Policies\Microsoft\Windows NT\DNSClient"
Const strKeyPath1B = "System\CurrentControlSet\Services\DnsCache\Parameters"
Const strKeyData1 = "UpdateTopLevelDomainZones"
Const strKeyPath2 = "System\CurrentControlSet\Services\Netlogon\Parameters"
Const strKeyData2 = "AllowSingleLableDnsDomain"
Const strKeyPath = "SOFTWARE\Microsoft\Non-Driver Signing"
Const strKeyData = "Policy"
Const strSPLevel = "4"

Dim arrKeyValue : arrKeyValue = Array(0) 'Ignore Driver Signing warning user interface
Dim Quotes : Quotes = chr(34) ' Double quotes
Dim strServerName : strServerName = "" ' Server name from Inputfile
Dim strInputFile : strInputFile = "Servers_VCA.txt" ' File containing servers to be updated Controllers
Dim intServerTotal : intServerTotal = 0 ' Total number of servers to be processed
Dim intServerCount : intServerCount = 0 ' Total number of servers processed


Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")
Dim strCurrentPath : strCurrentPath =

left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))
Set objInputFile = objFileSystem.OpenTextFile(strCurrentPath & strInputFile, ForReading, False)

Wscript.echo "Processing..."

Do While Not objInputFile.AtEndOfStream
Set intReturn_Reg = Nothing ' Modify Reg Key Return Code
Set intUpdate1 = Nothing
Set intUpdate2 = Nothing
Set intUpdate3 = Nothing

strServerName = objInputFile.ReadLine
intServerTotal = intServerTotal + 1
If Toggle_Driver_Signing(strServerName) = 0 Then
' Driver Signing has been turned off, so now update the Version Control Agent
intServerCount = intServerCount + 1

' Install VCA
intUpdate1 = objShell.Run(Quotes & strCurrentPath & "PSP_W2K\setupc.exe" & Quotes & "

/override-existing-connection /t:" & strServerName & " cp004191.exe", 1, True)
If intUpdate1 = 0 Then
Wscript.Echo strServerName & vbTab & "Ver Agent " & vbtab & "Passed" & vbtab & intUpdate1
Else
Wscript.Echo strServerName & vbTab & "Ver Agent " & vbtab & "Failed" & vbtab & intUpdate1
End If

' Install SIM Management Agent
intUpdate2 = objShell.Run(Quotes & strCurrentPath & "PSP_W2K\setupc.exe" & Quotes & "

/override-existing-connection /t:" & strServerName & " cp004188.exe", 1, True)
If intUpdate2 = 0 Then
Wscript.Echo strServerName & vbTab & "SIM Agent " & vbtab & "Passed" & vbtab & intUpdate2
Else
Wscript.Echo strServerName & vbTab & "SIM Agent " & vbtab & "Failed" & vbtab & intUpdate2
End If

' Install Diagnostic Online
intUpdate3 = objShell.Run(Quotes & strCurrentPath & "PSP_W2K\setupc.exe" & Quotes & "

/override-existing-connection /t:" & strServerName & " cp005075.exe", 1, True)
If intUpdate3 = 0 Then
Wscript.Echo strServerName & vbTab & "Diagnostic " & vbtab & "Passed" & vbtab & intUpdate3
Else
Wscript.Echo strServerName & vbTab & "Diagnostic " & vbtab & "Failed" & vbtab & intUpdate3
End If
Else
Wscript.Echo strServerName & vbTab & "Failed to turn off Driver Signing" & vbtab & "Version Control Agent not

updated"
End If

' Fix the Single-Label DNS issue which causes Eventlog entries about not being able to auto register the DNS record
If DNS_Reg_Fix(strServername)= 0 Then
Wscript.Echo strServername & vbTab & "DNS reg fix" & vbTab & "Passed"
Else
Wscript.Echo strServername & vbTab & "DNS reg fix" & vbTab & "Failed or not required"
End If
Wscript.Echo
Loop

objInputFile.Close
msgbox intServerCount & " of " & intServerTotal & " servers processed"

' ****************************************************************************************************************
Function Toggle_Driver_Signing(Byval strServerName)
' Purpose: Turns off Driver Signing registry key on remote server
' Returns: '0' Success, '1' failure

Dim intReturn, objReg

On Error Resume Next
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strServerName & "\root\default:StdRegProv")
intReturn = objReg.SetBinaryValue(RegHKLM, strKeyPath, strKeyData, arrKeyValue)
On Error Goto 0

If (Err.Number = 0) And (intReturn = 0) Then
Toggle_Driver_Signing = 0
Else
Toggle_Driver_Signing = 1
End If

Set objReg = Nothing
Set intReturn = Nothing
End Function

' ****************************************************************************************************************
Function DNS_Reg_Fix(Byval strServername)
' Purpose: Modifies reg key on remote server to resolve DNS issue
' Returns: '0' Success, '1' failure

Dim objReg, intRegReturn1, intRegReturn2, intRegReturn3, strOSversion, strServicePack

Set intRegReturn1 = Nothing
Set intRegReturn2 = Nothing
Set intRegReturn3 = Nothing
Set strServicePack= Nothing
DNS_Reg_Fix = 1

Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strServerName & "\root\default:StdRegProv")
Get_OS_Version strServername, strOSversion, strServicePack

If strOSversion = "W2K3" Then
intRegReturn1 = objReg.CreateKey(RegHKLM, strKeyPath1A, strKeyData1)
intRegReturn2 = objReg.SetDWordValue(RegHKLM, strKeyPath1A, strKeyData1, 1)
intRegReturn3 = objReg.SetDWordValue(RegHKLM, strKeyPath2, strKeyData2, 1)

If (Err.Number = 0) And (intRegReturn2 = 0) And (intRegReturn3 = 0) Then
DNS_Reg_Fix = 0
End If
'ElseIf strOSversion = "W2K" And StrComp(strServicePack, strSPLevel, vbTextCompare) = 0 Then
' intRegReturn1 = objReg.CreateKey(RegHKLM, strKeyPath1B, strKeyData1)
' intRegReturn2 = objReg.SetDWordValue(RegHKLM, strKeyPath1B, strKeyData1, 1)
' intRegReturn3 = objReg.SetDWordValue(RegHKLM, strKeyPath2, strKeyData2, 1)

' If (Err.Number = 0) And (intRegReturn2 = 0) And (intRegReturn3 = 0) Then
' DNS_Reg_Fix = 0
' End If
End If

Set objReg = Nothing
End Function

' ****************************************************************************************************************
Sub Get_OS_Version(Byval strServername, strOSversion, strServicePack)
' Purpose: Obtain remote server's OS and SP version
' Returns: OS and SP version

Dim objWMIService, strOSModel, objOperatingSystem, colOperatingSystems

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strServerName & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystems
strOSModel = objOperatingSystem.Caption
strServicePack = objOperatingSystem.ServicePackMajorVersion
Next

If Instr(1,strOSModel,"2000", vbTextCompare) Then
strOSversion = "W2K"
ElseIf Instr(1,strOSModel,"2003", vbTextCompare) Then
strOSversion = "W2K3"
End If
End Sub

' ****************************************************************************************************************