Hello,
I have several files that need to be uploaded to Sharefile monthly and I would like to use PowerShell to do this. I followed the steps here ShareFile PowerShell to add the ShareFile PowerShell snapin and installed the Sharefile Powershell SDK from GitHub but need some help.
I tested by doing the following and get the prompt to enter credentials in Sharefile.
Add-pssnapin sharefile
New-sfclient –name “c:\temp\sflogin.sfps”
$sfclient = get-sfclient –name “c:\temp\sflogin.sfps”
New-psdrive –name sf –psprovider sharefile –root / -client $sfclient
This works fine. Then I tested by doing a simple copy from a local directory to a directory in Sharefile as in the example below:
Copy-sfitem c:\Temp\TestFolder-CommunicationTeam\CommunicationsPhoneTree.xlsx sf:/”Disaster Recovery-Business Continuity”\Communications
If no files exist then the file is uploaded fine. However there are three things I am trying to accomplish:
- I want to copy select files, not the entire contents of the local directory. I know I can use (Copy-sfitem c:\temp\testfolder* sf:/”Disaster Recovery-Business Continuity”\Communications) and this copies the entire directory. However, I just need to upload two excel files that periodically change each month from a variety of local folders. How do I do this?
- I need the files to be overwritten in Sharefile when they are uploaded. This doesn’t happen if I use Copy-sfitem c:\Temp\TestFolder-CommunicationTeam\CommunicationsPhoneTree.xlsx sf:/”Disaster Recovery-Business Continuity”\Communications. How do I add the overwrite parameter in the command?
- I would need to copy local files from more than two dozen local directories to corresponding folders in Sharefile. I would like to efficiently do this using a script that doesn’t require me to log into Sharefile as I do when I enter the $sfclient = get-sfclient –name “c:\temp\sflogin.sfps” command as noted above. How do I configure the script with the credentials so this doesn’t need to run interactively? This will enable me to schedule the script to run automatically using the task scheduler.