Many common tasks in App Broker can be performed by calling the Web Service API’s which are available. Common tasks include creating/configuring new catalog items, submitting/canceling requests, and approving/rejecting requests which require approval. The two main SOAP Web Services in App Broker are as follows:
http://[AppPortalServer]/ESD/API.asmx
http://[AppPortalServer]/ESD/ws/integration.asmx
Hitting either of these pages in a browser will show the API calls which are available, and also the input parameters for each.
While there are a number of ways to invoke the App Broker API calls, perhaps the most common is through the use of a PowerShell script. Fortunately, PowerShell makes this easy. The following is a very basic example of using PowerShell to create a new request for a catalog item:
$catalogID = 12
$targetDevice = "MyMachineName" $targetUser = "MyDomain\MyUserName" $requester = "MyDomain\MyRequesterName" $useApproval = $false $sendEmail = $false $uri = "http://sup-apfnmp-cw/esd/api.asmx" #Change to reflect App Broker server name. $WebService = New-WebServiceProxy -Uri $uri -UseDefaultCredential $requestID = $WebService.createRequest($catalogID, $targetDevice, $requester, $targetUser, $useApproval, $sendEmail, @()) echo $requestID
Note that in the above case, the switch -UseDefaultCredential indicates that the credentials for the user invoking the PowerShell script will be used to connect to the Web Service. If it is desirable to use a different account to connect to the Web Service, then the script could be modified as follows to use a specific account:
$catalogID = 12 $targetDevice = "MyMachineName" $targetUser = "MyDomain\MyUserName" $requester = "MyDomain\MyRequesterName" $useApproval = $false $sendEmail = $false $uri = "http://sup-apfnmp-cw/esd/api.asmx" #Change to reflect App Broker server name. $username = "MyDomain\MyAccountName" $password = "MyPassword" | ConvertTo-SecureString -AsPlainText -Force $cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $username, $password $WebService = New-WebServiceProxy -Uri $uri -Credential $cred $requestID = $WebService.createRequest($catalogID, $targetDevice, $requester, $targetUser, $useApproval, $sendEmail, @()) echo $requestID
Note: Before you can call the above Web Services, you must enable the API. This can be done by going to Settings -> Flexera Integration, and selecting "Enable App Portal API"
‎Apr 23, 2019 02:02 PM
Or if you plan to run the script interactively and prefer to prompt for credentials for a "Run As"-like behavior instead of hard-coding alternate credentials into your script, you can leverage the Get-Credential commandlet.
‎May 20, 2019 03:40 PM