Jump to content

Recommended Posts

Posted

We deploy SIMS, but not Solus. I have an application for each of the SIMS executables - SIMS Infrastructure, SIMS Application, SIMS AMPark and SIMS Manuals. For each of them the Detection method references the setup.log (or pulsar.exe in the case of SIMS Application) with a date modified equal to or greater than. We then deploy them to a group of computers called, conveniently SIMS Machines. Each time we update SIMS on the server we modify the Date Modified. SCCM then pushes out SIMS overnight to the workstations. It rarely fails.

 

The applications can easily be added to a TS, of Course.

  • Thanks 1
Posted (edited)

We use SCCM to deploy out Solus as an application and not as part of the Task Sequence, but the same would work.

 

In SCCM, the package calls our SolusInstall.cmd script. It in turn calls a VBS script that checks a CSV file in the same folder for the workstation name. If it finds the name, it passes the stored GUID to the install string. If the name does not exist, it generates a GUID, updates the CSV file and calls the Installer.

We originally exported a list of station names and GUID's from the agent table in the Solus3 database.

 

We also export the Solus 3 Agent to our install folder.

 

Install.cmd

wscript.exe "\\server\applications$\Solus\SolusInstall.vbs"

 

SolusInstall,vbs

Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set wshShell = WScript.CreateObject("WScript.Shell")
Set TypeLib = CreateObject("Scriptlet.TypeLib")
Set wshNetwork = WScript.CreateObject( "WScript.Network" )


Set fso = CreateObject("Scripting.FileSystemObject")


Filename = "\\SERVER\Applications$\Solus\guids.csv"
Found = false
strComputer = wshNetwork.ComputerName

strOSArch = GetObject("winmgmts:root\cimv2:Win32_OperatingSystem=@").OSArchitecture

Set MyFile = fso.OpenTextFile(FileName, ForReading)
Do While MyFile.AtEndOfStream <> True
temp = MyFile.Readline
if instr(temp,strComputer) > 0 then 
	GUID = Left(temp,instr(temp,",")-1)
	found = true
End if
Loop
MyFile.Close



If found = false then 
GUID = left(TypeLib.Guid,37)
GUID = Right(Guid,36)
Set MyFile = fso.OpenTextFile(FileName, ForAppending, True, TristateTrue)
MyFile.WriteLine GUID & "," & strComputer
MyFile.Close	

end if

If strOSArch = "32-bit" then
'msgbox "32 Bit install"
wshShell.Run "msiexec.exe /i " & chr(34) & "\\SERVER\Applications$\Solus\SOLUS3AgentInstaller_x86.msi" & chr(34) & " AGENTSERVICEADDRESS=" & chr(34) & "net.tcp://localhost:52966" & chr(34) & " AGENTID=" & chr(34) & "{" + GUID + "}" & chr(34) & "  DEPLOYMENTSERVERADDRESS=" & chr(34) & "net.tcp://SIMSSERVER:52965" & chr(34) & " RSAKEYPATH=" & chr(34) & "\\SERVER\Applications$\Solus" & chr(34) & " /qn /l*v C:\solus.log", 1, true
end if
If strOSArch = "64-bit" then
'msgbox "64 Bit install"
wshShell.Run "msiexec.exe /i " & chr(34) & "\\SERVER\Applications$\Solus\SOLUS3AgentInstaller_x64.msi" & chr(34) & " AGENTSERVICEADDRESS=" & chr(34) & "net.tcp://localhost:52966" & chr(34) & " AGENTID=" & chr(34) & "{" + GUID + "}" & chr(34) & "  DEPLOYMENTSERVERADDRESS=" & chr(34) & "net.tcp://SIMSSERVER:52965" & chr(34) & " RSAKEYPATH=" & chr(34) & "\\SERVER\Applications$\Solus" & chr(34) & " /qn /l*v C:\solus.log", 1, true
end if

Edited by Boredguy
  • Thanks 2
  • 2 weeks later...
Posted

My attempt of making PowerShell version of the VBS script.

 

PowerShell code for SolusInstaller.ps1:

$Found=$false
$CSV = "\\DEPLOYMENT-SERVER-HERE\SHARE-HERE$\Solus\Agents.csv"
$SolusAgentDataList=IMPORT-CSV $CSV -Header ("ID","Name")
$GUID=[system.GUID]::NewGuid().ToString()
$ComputerName = (Get-Childitem env:computername).Value
ForEach ($SolusAgentDataItem in $SolusAgentDataList)
{
   If ($SolusAgentDataItem.Name -eq $ComputerName)
   {
       $Found=$true
       $GUID=$SolusAgentDataItem.ID
   }
}
If (!$Found)
{
   Add-Content $CSV "$GUID,$ComputerName`n"
}
&msiexec.exe /i `"\\DEPLOYMENT-SERVER-HERE\SHARE-HERE$\Solus\SOLUS3AgentInstaller_x64.msi`" AGENTSERVICEADDRESS=`"net.tcp://localhost:52966`" AGENTID=$GUID DEPLOYMENTSERVERADDRESS=`"net.tcp://SOLUS-SERVER-HERE:52965`"  RSAKEYPATH=`"\\DEPLOYMENT-SERVER-HERE\SHARE-HERE$\Solus`" /qn /l*v C:\solus.log
Start-Sleep -s 5

  • Thanks 2
Posted
We deploy SIMS, but not Solus. I have an application for each of the SIMS executables - SIMS Infrastructure, SIMS Application, SIMS AMPark and SIMS Manuals. For each of them the Detection method references the setup.log (or pulsar.exe in the case of SIMS Application) with a date modified equal to or greater than. We then deploy them to a group of computers called, conveniently SIMS Machines. Each time we update SIMS on the server we modify the Date Modified. SCCM then pushes out SIMS overnight to the workstations. It rarely fails.

 

 

Sorry if these are silly questions; How have you setup your applications?

 

I assume you're using Solus to receive the update in the first place? At which point how are you getting hold of the install files? - I can only see setup files dating back before Solus was in-use.

Posted
Sorry if these are silly questions; How have you setup your applications?

 

I assume you're using Solus to receive the update in the first place? At which point how are you getting hold of the install files? - I can only see setup files dating back before Solus was in-use.

 

On the Solus server there's an option to unpack updates when you download them, and it'll store the install files in that folder for manual usage too :p

 

Steve

  • Thanks 1
  • 3 years later...
Posted

Yes as the Script is just installing Solus onto the workstation, not SIMS itself.

 

Then again, we're about to do away with Solus completely on workstations and instead revert back to the old method of running the SIMSApplicationSetup.exe each time via Intune.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...