# SQLInsight Pro: logon to Dynamics AX through the .NET Business Connector, run by the agent in its own process. # Logs on as the agent's Windows account, logs off again, and writes one line: SQLINSIGHT-AX-OK or SQLINSIGHT-AX-ERROR . # Reads nothing in AX and changes nothing. Parameters come in environment variables (no quoting problems): # SQLINSIGHT_AX_DLL path to Microsoft.Dynamics.BusinessConnectorNet.dll # SQLINSIGHT_AX_COMPANY company (DataAreaId), or empty for the user's default # SQLINSIGHT_AX_SERVER object server, e.g. 01@aos01:2712 or aos01:2712 # SQLINSIGHT_AX_CONFIG AX client configuration, or empty $ErrorActionPreference = 'Stop' function Value([string] $name) { $v = [Environment]::GetEnvironmentVariable($name); if ([string]::IsNullOrEmpty($v)) { return $null } else { return $v } } try { Add-Type -Path (Value 'SQLINSIGHT_AX_DLL') $ax = New-Object Microsoft.Dynamics.BusinessConnectorNet.Axapta $watch = [System.Diagnostics.Stopwatch]::StartNew() $ax.Logon((Value 'SQLINSIGHT_AX_COMPANY'), $null, (Value 'SQLINSIGHT_AX_SERVER'), (Value 'SQLINSIGHT_AX_CONFIG')) $ms = $watch.ElapsedMilliseconds try { [void] $ax.Logoff() } catch { } Write-Output ('SQLINSIGHT-AX-OK ' + $ms) exit 0 } catch { $e = $_.Exception while ($e.InnerException) { $e = $e.InnerException } Write-Output ('SQLINSIGHT-AX-ERROR ' + ($e.Message -replace '\s+', ' ')) exit 1 }