[玩转系统] 如何在操作中使用 ScriptRunner“FilePicker”查询
作者:精品下载站 日期:2024-12-14 08:12:01 浏览:14 分类:玩电脑
如何在操作中使用 ScriptRunner“FilePicker”查询
由于我们与ScriptRunner用户密切交流,他们的许多建议和想法已被纳入该软件中。使用 ScriptRunner,您可能已经注意到尚无法上传文件进行处理。我们正在做这件事!该功能目前正在开发中,将包含在下一版本 Portal Edition R4 中。在下面的文章中,我们将介绍一种在 ScriptRunner 中处理不同类型文件的解决方法,这样您就不必等到 Portal Edition R4 的发布。
我们在 PowerShell 中编写了一个查询脚本,可以通过对话框选择文件,然后在操作中处理这些文件的内容。在本文的末尾,您将找到有关如何创建和使用查询的完整说明。该脚本当前仅适用于网络共享、相应的 UNC 路径以及具有网络共享权限的相应凭据。
有两种方法可以从相应的路径检索数据。在第一个变体中,定义是在 ScriptRunner 目标中完成的。在第二种变体中,在脚本中使用 $PSDrive。
变体 #1 - 目标中的凭证
有权访问共享的凭据在目标中指定。我们使用一个简单的 AD 帐户,并将网络共享的权限作为凭据。
目标的结构必须如下:
目标本身必须创建为“本地执行”并在“简单运行进程模式”下运行。
注意:如果脚本中存在“PSCredential”类型的参数,并且它们包含值,则查询或操作将不会启动,因为在“Run-as”模式下不支持 PSCredential 参数。这也在目标中作为注释文本指出。
变体 #2 - 凭证作为参数
具有共享权限的凭据将传递给参数“$DomainAccount”。 UNC 路径和凭据将映射到 PSDrive,然后可以检索或使用。查询完成后,再次关闭与PS驱动器的连接,并删除PS驱动器。如果您想保险起见,还可以注释脚本中 try-catch 块的“Finally”区域。
更优雅的变体当然是第二种,因为这里保留了灵活性,并且不一定依赖于具有合适凭据的目标。在这两种变体中,脚本本身无需进行任何更改。逻辑就在代码里面。
该脚本仅在包含“_QUERY_”标记的情况下才能在查询中使用。可以通过脚本名称(“QRY_Get-FileFromPath.ps1”)、在脚本本身的“设置适当的标签”区域中手动分配标签,或者通过复选框“这是一个返回查询结果列表的查询脚本”来分配标签。 “在同一地区。在下面的屏幕截图中,您可以看到相应的标签,它被标记为黄色:
如何使用脚本?让我们借助几张屏幕截图来看看该过程。
步骤1
在第一步中,创建“使用脚本”类型的查询。
第2步
现在为查询选择一个合适的名称,并将“缓存策略”设置为“不缓存实时查询”和“...自动查询执行”。仅当查询自动启动时才需要最后一点。还可以手动输入 UNC 路径并通过“级联”传递到查询,为此,在复选框中取消选择该选项。
步骤3
根据您选择的变体,现在会存储相应的目标。使用参数中的凭据,配置应如屏幕截图所示。查询通过“直接服务执行”运行,并且包括凭据的网络路径被映射到 PSDrive。
注意: PSDrive 获取 GUID 作为名称。因此该名称是唯一的,不会与其他驱动器或类似的驱动器发生冲突。
$Include 参数指定搜索哪些文件扩展名。如果该参数留空,则显示所有文件。例如,如果您只想显示 TXT 文件,则条目必须是 *.txt。
如果您希望通过目标对共享进行授权,则 $DomainAccount 参数必须保留为空,并且目标将设置为如上所述的目标。
步骤4
现在可以测试查询了。如果一切设置正确,结果应如下所示:
以下是提供完整概述的完整代码:
<#
.SYNOPSIS
.DESCRIPTION
.NOTES
.COMPONENT
.LINK
.Parameter NetworkPath
[sr-en] Enter filepath in UNC format
[sr-de] Bitte den Verzeichnispfad im UNC Format eintragen
.Parameter Include
[sr-en] Specify the file extensions (e.g. *.csv)
[sr-de] Nach Dateiendungen filtern (z.B. *.csv)
.Parameter DomainAccount
[sr-en] Specify a domain account with permission for the network share
[sr-de] Bitte einen Domänen Benutzer mit Berechtigungen für das Netzlaufwerk eintragen
#>
param (
[ValidatePattern('(?:[^"/:*?"<>|\r\n]+\)*[^"/:*?"<>|\r\n]*')]
[string]$NetworkPath,
[string]$Include,
[pscredential] $DomainAccount
)
try {
if ($null -ne $DomainAccount) {
try {
$GUID = [guid]::NewGuid().toString()
[hashtable]$cmdArgs = @{
"Name" = $GUID
"PSProvider" = "FileSystem"
"Root" = $NetworkPath
"Credential" = $DomainAccount
}
$PSDrive = New-PSDrive @cmdArgs
$TestPath = Test-Path -Path $PSDrive.Root
if ($TestPath -eq "True") {
$Files = Get-ChildItem -Path $PSDrive.Root -Include $Include -File
if ($null -ne $Files) {
foreach ($itm in $Files) {
if ($null -ne $SRXEnv) {
$null = $SRXEnv.ResultList.Add($itm)
$null = $SRXEnv.ResultList2.Add("$($itm.Name)")
}
else {
Write-Output "$($itm.Name)"
}
}
}
else {
Write-Output "No files in specified folder $($PSDrive.Root) found."
}
}
else {
Write-Output "Either path $($PSDrive.Root) does not exist or access is denied!"
}
}
catch {
throw
}
finally {
<#if ($PSDrive) {
Remove-PSDrive -Name $GUID
}#>
}
}
else {
$TestPath = Test-Path -Path $NetworkPath
if ($TestPath -eq "True") {
$Files = Get-ChildItem -Path $NetworkPath -Include $Include -File
if ($null -ne $Files) {
foreach ($itm in $Files) {
if ($null -ne $SRXEnv) {
$null = $SRXEnv.ResultList.Add($itm)
$null = $SRXEnv.ResultList2.Add("$($itm.Name)")
}
else {
Write-Output "$($itm.Name)"
}
}
}
else {
Write-Output "No files in specified folder $($NetworkPath) found."
}
}
else {
Write-Output "Either path $($NetworkPath) does not exist or access is denied!"
}
}
}
catch {
throw
}
结论
当然,还有其他方法可以在 ScriptRunner Actions 中处理文件。此外,可以自定义此脚本以显示目录中的子文件夹。在 ScriptRunner 默认合并该功能之前,这只是一个小解决方法。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag