使用Powershell从Servicenow票证下载附加的excel文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Powershell从Servicenow票证下载附加的excel文件相关的知识,希望对你有一定的参考价值。
我目前正在使用Powershell脚本,该脚本应该能够从即时服务票证中下载附加的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自动化的新手,如果可以,如果可以推荐更好的方法,我将不胜感激。
是,您需要凭据。
您的URI是servicenow实例的URL。更改dev42835部分以使其匹配。如果不确定您的实例,请联系servicenow支持。https://dev42835.service-now.com
如果使用REST API资源管理器,则可以查看API端点和版本,这将有助于形成您的请求。您确实需要具有rest_api_explorer角色才能访问REST API资源管理器。如果您没有此角色,请与您的现服务管理员联系以要求该角色。
是,您需要凭据,但不必那样对它们进行硬编码。相反,您可以使用内置方法Get-Credential
,它将安全地收集您的用户名和密码。每次运行时,用户都必须输入自己的ServiceNow凭据。
我的版本只有一件事需要配置,$SubDomain
变量专门针对您的租户。
$SubDomain = "YourServiceNowSubdomaingoeshere" # Configure this per tennat
$Credential = Get-Credential
If(!$Credential){
# User Cancelled
exit 1
}
$IncidentNumber = Read-Host -Prompt 'Enter Incident Request #'
$Uri = "https://$SubDomain.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://$SubDomain.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!"
}
以上是关于使用Powershell从Servicenow票证下载附加的excel文件的主要内容,如果未能解决你的问题,请参考以下文章
ServiceNow - 从表单按钮单击事件调用客户端脚本以保存图像和标题
将 PowerShell DSC 与 ITSM/变更管理集成