【发布时间】:2020-05-28 20:37:04
【问题描述】:
我目前正在开发一个 powershell 脚本,它应该能够从 service now 票证中下载附加的 excel 文件,在我解释更多之前,请参阅下面的自动化基本流程。
- 系统将要求用户输入票号。
- 然后系统会找到那个事件单来准确获取所需的excel文件(我在网上看到需要使用sys_id)。
- 然后它将被下载到用户机器上的特定路径。例如:“C:\downloads\Demo\”。
在这一切之后,我在网上找到了一个示例脚本,我正在尝试对其进行配置以满足我的需求;但是,我不确定从何处获取该示例脚本的值。您可以查看脚本下方的项目符号,了解我想到的问题。
$IncidentNumber = Read-Host -Prompt 'Enter Incident Request #'
#$admin = "admin"
#$password = "admin" | ConvertTo-SecureString -AsPlainText -Force
#$Credential = New-Object pscredential -ArgumentList ($admin,$password)
$Uri = "https://dev42835.service-now.com/api/now/table/incident?sysparm_query=number=$($IncidentNumber)&sysparm_fields=sys_id&sysparm_limit=1"
$IncidentResult = Invoke-RestMethod -Uri $Uri #-Method Get -Credential $Credential
if($IncidentResult.result.sys_id -ne $null) {
$IncidentAttachments = Invoke-RestMethod -Uri "https://dev42835.service-now.com/api/now/attachment?sysparm_query=table_sys_id=$($IncidentResult.result.sys_id)" #-Method Get -Credential $Credential
$IncidentAttachments.result | Select file_name , download_link
}
else{
"Incident Not Found!"
}
- 我真的需要凭据来运行脚本吗?如果是的话,有没有办法 不需要凭据?
- 在哪里可以获得分配给 $URI 变量的 URL?
我是 powershell 自动化的新手,如果您能推荐更好的方法(如果有的话),我将不胜感激。
【问题讨论】:
-
如果您的 ServiceNow 服务器需要凭据,那么是的,您需要凭据。该 url 应该是您自己的 SN 服务器的 url,但如果它是托管的,您可能需要与提供商核实。
-
服务现在公开 API。这是一个链接:developer.servicenow.com/app.do#!/…。至于您的需求,您只需将
dev42835替换为您公司现在使用的服务的URL即可。
标签: asp.net powershell servicenow servicenow-rest-api