First you need to create class library for CoreApiBasicAuth endpoint (use http://rkeithhill.wordpress.com/2006/11/08/calling-a-wcf-service-from-powershell/ as a help how to do this)
Using this library (for example CoreApiBasicAuth.dll) you can connect to Atomia Automation Server. In following example I created powershell script to list Windows Websites for specific account.
[Reflection.Assembly]::LoadFrom("c:\CoreApiBasicAuth.dll")
$wsHttpBinding = new-object System.ServiceModel.BasicHttpBinding
$wsHttpBinding.Security.Message.ClientCredentialType = [System.ServiceModel.BasicHttpMessageCredentialType]::UserName
$wsHttpBinding.Security.Mode = [System.ServiceModel.BasicHttpSecurityMode]::TransportWithMessageCredential
$endpoint = new-object System.ServiceModel.EndpointAddress("https://provisioning.test.com/CoreAPIBasicAuth.svc")
$coreAPI = new-object CoreApiClient($wsHttpBinding, $endpoint)
$coreAPI.ClientCredentials.UserName.set_UserName("Admin")
$coreAPI.ClientCredentials.UserName.set_Password("Admin")
$Acc = $coreAPI.GetAccount("123456")
#find websites for this account
$pageInfo = New-Object Atomia.Provisioning.Base.PagingInfo
$strNames = @("CsWindowsWebsite")
$pageInfo.PageSize = 10
$pageInfo.PageNumber = 0
$res = $coreAPI.FindServicesByNamesForAccount($Acc.AccountId, $strNames, [ref] $pageInfo)
$sites = $res | ForEach-Object {$_.properties} | Where-Object {$_.Name -eq "Hostname"} | Select-Object propStringValue
Write-Output $sites
$coreAPI.Close()
No comments:
Post a Comment