Get robots list of orchestrator in PowerShell

PowerShellでOrchestratorのRobot一覧を取得したいのですが、エラーが発生しました。
どこを直したらよいか教えてください。

【PowerShell】
$uriAccount = “$uriOrch/api/Account”
$bodyAccount = @{
“tenancyName” = $tenantName
“usernameOrEmailAddress” = $adminName
“password” = $adminPasswd
} | ConvertTo-Json

$contentType = “application/json;charset=utf-8”
WriteLog “Login to [$uriOrch] with Tenant [$tenantName] & Admin [$adminName] …”
$resAccount = Invoke-RestMethod -Uri $uriAccount -Method Post -Body $bodyAccount -ContentType $contentType
$authKey = $resAccount.result
$headers = @{“Authorization”=“Bearer $authKey”
$resRobots = Invoke-RestMethod -Uri $uriOrch/odata/Robots -Method Get -ContentType $contentType -Headers $headers
$resRobots.value | foreach {$_.Name}

【Error】
Invoke-RestMethod : {“message”:“このアクションには組織単位が必要です。”,“errorCode”:1101,“resourceIds”:null}
発生場所 行:60 文字:14

  • … resRobots = Invoke-RestMethod -Uri "$uriOrch/odata/Robots…
  •             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod]、WebException
    • FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

@KuroNeko さん
こんにちは。

上記のエラーですが、ご使用のOrchestrator環境において、
組織単位(最新版ではフォルダ)を使用されていることが原因と思われます。

この場合、リクエストヘッダーで、ロボットの一覧を取得したい組織単位のIdを指定する必要があります。

$headers = @{
  "Authorization"="Bearer $authKey"
  "X-UIPATH-OrganizationUnitId"="1"
}

$resRobots = Invoke-RestMethod -Uri $uriOrch/odata/Robots -Method Get -ContentType $contentType -Headers $headers

なお、組織単位の一覧は$uriOrch/odata/OrganizationUnitsより取得することができます。

@Sho_Fujita さん

返信遅くなってすみません。
教えていただいた組織単位を指定したら、正常動作しました!

感謝、感謝です!
ありがとうございました!!!!

問題が解決したようで何よりです。:grinning:
Orchestrator APIは、新機能の追加等に伴ってちょっと複雑になっている部分があります。
また何かあればForumに書き込んでいただければと思います。