Хорошо, после некоторой борьбы, большого количества чтения, испытаний и неудач, я наконец понял это, и это работает.Может быть достаточно специфичным для нашей среды, но, надеюсь, поможет кому-то.Теперь это кажется довольно простым, и я не знаю, почему мой исходный код не работал.Во всяком случае, вот оно:
$usr = 'username'
$pwd = 'password'
$url = "jenkins-url"
# --- get crumb ---
$headers = @{}
$headers.Add('Authorization', 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$(${usr}):$(${pwd})")))
$getCrumb = Invoke-RestMethod -Uri "$url/crumbIssuer/api/json" -Method GET -Headers $headers
$crumb = $getCrumb.crumb
# --- get Jenkins XML
$headers.Add('Jenkins-Crumb',$crumb)
$xmlData = (Invoke-WebRequest -Uri "$url/computer/api/xml" -Method GET -Headers $headers | Select-Object *).Content