→ Having trouble accessing our new support portal or creating a ticket? Please notify our team here

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Florian_Thiem
Engaged Sweeper
Hi,

I'm trying to create a deployment package which needs to check in which location the PC is at as each location has a slightly adjusted installer for that software.

e.g. there are multiple Locations whith the same pc Name pattern like DE123456.00001 the first part represents the location the last one is the PC number in that location.

I've tried to create a condition like...

ConditionType: Registry
Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName
Value: ComputerName
Condition: Has Value
Value: DE123456

As there is no condition "contains" it seems I'm not able to search for a part of the value.

Anyone has an idea how to get around this?

Many thanks,
Florian
2 REPLIES 2
grimstar
Champion Sweeper II
Building off of what CyberCitizen said, this piece of PowerShell splits your computer names in to two pieces using the "." character as the delineation. I did it like this as I wasn't sure if your locations would have different lengths or not. You have to define your location names and what file to deploy for the specific location. I'm sure this could be improved upon as I'm a novice with PS.

Oh also the $PCNumber variable isn't actually used, but I figured in case you wanted to use it for something you would have it available.

#DeployByLocation.ps1

#Splits the computername variable in to a location and PC number using a . delimiter.

$SplitVariable = $env:computername.IndexOf(".")
$DeviceLocation = $env:computername.Substring(0, $SplitVariable)
$PCNumber = $env:computername.Substring($SplitVariable+1)

#Sets different install files based upon location.
#Must create variables for each install file.

$DE123456 = "C:\InstallFileForLocation1\File.exe"
$DE098765 = "C:\InstallFileForLocation2\File.exe"

#Checks against a list of locations. If the location exists, it runs the file specified in the variables above and exists. If it doesn't exist, the script just exits.
#Must add switch for each location so that it knows what to run.

Switch ($DeviceLocation) {

"DE123456" { & $DE123456; break }
"DE098765" { & $DE098765; break }
default { exit; break }
}
CyberCitizen
Honored Sweeper
I am guessing that you would have to call a script and that script checks the conditions of the HOSTNAME etc and then calls the necessary install commands based on that. The conditions of Lansweeper isn't really designed for that.

If you have your AD Environment setup with different office locations (OU's) etc, you could create a report based on that data and then deploy via the report.