HostInstance.ps1

$hostname = 'TestBizTalkServerApplication2'
$namespace = 'ROOT\MicrosoftBizTalkServer'

$query = "SELECT * FROM MSBTS_ServerHost WHERE HostName='$hostname'"

$instance = Get-CimInstance -Query $query -Namespace $namespace

if($null -ne $instance){
    Remove-CimInstance -InputObject $instance
}

$query = "SELECT * FROM MSBTS_HostSetting WHERE Name='$hostname'"

$instance = Get-CimInstance -Query $query -Namespace $namespace

if($null -ne $instance){
    Remove-CimInstance -InputObject $instance
}

$query = "SELECT * FROM MSBTS_HostInstance WHERE HostName='$hostname'"

$instance = Get-CimInstance -Query $query -Namespace $namespace

if($null -ne $instance){
    Remove-CimInstance -InputObject $instance
}

$properties = @{
    Name = $hostname;
    AuthTrusted = $true;
    HostTracking = $false;
    HostType = 1;
    IsDefault = $false;
    IsHost32BitOnly = $false;
    NTGroupName = 'BizTalk Application Users';
}

$instanceClass = Get-CimClass -ClassName MSBTS_HostSetting -Namespace $namespace

$instance = New-CimInstance -CimClass $instanceClass  -Property $properties

Set-CimInstance -InputObject $instance
           
$instanceClass = Get-CimClass -Namespace $namespace â€“ClassName MSBTS_ServerHost

$properties = @{
    ServerName = $env:COMPUTERNAME;
    HostName = $hostname;
}

$instance = New-CimInstance -CimClass $instanceClass -Property $properties

Set-CimInstance -InputObject $instance

$query = "SELECT * FROM MSBTS_ServerHost WHERE HostName='$hostname'"

$instance = Get-CimInstance -Query $query -Namespace $namespace

Invoke-CimMethod -InputObject $instance -MethodName Map

$query = "SELECT * FROM MSBTS_HostInstance WHERE HostName='$hostname'"

$instance = Get-CimInstance -Query $query -Namespace $namespace

if($null -ne $instance){
    Remove-CimInstance -InputObject $instance
}

$instanceClass = Get-CimClass -Namespace $namespace â€“ClassName MSBTS_HostInstance

$name = "Microsoft BizTalk Server $hostname $($env:COMPUTERNAME)"

$properties = @{
    Name =$name;
}

$instance = New-CimInstance -CimClass $instanceClass -Property $properties

$arguments = @{
    GrantLogOnAsService = $true;
    Logon = '\Administrator';
    Password = 'Pass@word1';
}

Set-CimInstance -InputObject $instance 

$instance = Get-CimInstance -Query $query -Namespace $namespace

Invoke-CimMethod -InputObject $instance -MethodName Install -Arguments $arguments