0

我有以下 powershell 脚本,该脚本已开发用于将文件从本地 unc 路径复制到应用程序 Citrix ShareFile。虽然在这方面一切都很好,但我们面临的一个问题是我们严格不能支持文件夹,因为 Citrix ShareFile 不接受副本作为新上传,但是它将文件创建为新文件夹并且没有正确触发工作流程.

我认为会让我们的生活更轻松的一件事就是不支持适用于我们环境的文件夹。

我在想的是一个脚本,它可以提取所有文件并将它们移动到根目录,删除所有文件夹,然后将它们上传到 ShareFile。

下面的脚本将复制文件夹及其所有内容。

我环顾四周,正在努力让它按照我的意愿去做。

## Add ShareFile PowerShell Snap-in
Add-PSSnapin ShareFile

## Create new authentication file
#New-SfClient -Name "C:\Sharefile\SVCACC.sfps" -Account aws

## Variables ##
$OutputAppReqFID = "fo4a3b58-bdd6-44c8-ba11-763e211c183f"
$Project = 'A001'
$LocalPath = "\\file.server.au\$project\DATA\DATA CUSTODIAN\OUTPUT\"
$sfClient = Get-SfClient -Name C:\sharefile\SVCACC.sfps
$OutputAppReqFID_URL = (Send-SfRequest $sfClient -Entity Items -id $OutputAppReqFID).Url

## Create PS Drive ##
New-PSDrive -Name "sfDrive-$($project)" -PSProvider ShareFile -Client $sfClient -Root "\" -RootUri $OutputAppReqFID_URL

## Copy all files from specified path to ShareFile, followed by moving files to another folder ##
foreach ($object in Get-ChildItem -Path $LocalPath) { 
    Copy-SfItem -Path $object.FullName -Destination "sfDrive-$($project):" 
    remove-item $object.FullName -Recurse
    }

## Remove PS Drive ##
Remove-PSDrive "sfdrive-$($project)"
4

1 回答 1

0

回答了!

我设法应用了一个简单的 Where-Object,它从上传中排除了模式目录 d-----

Get-childitem -Path $LocalPath -Recurse | Where-Object {$_.Mode -ne "d-----"} | Select-Object -ExpandProperty FullName) 

Seems to have worked a treat!
于 2021-09-23T02:59:37.487 回答