Skip to content

Invoke-SQLUploadFileOle on SQL linked servers #83

Open
@MuhoX

Description

@MuhoX

Hello,

The function Invoke-SQLUploadFileOle does not have an option to use it on linked servers. I've modified the code slightly so that it can be used on linked servers.

I'd like to request a new feature or function to be able to upload and download files with OLE on linked servers. Below is an example code which can be implemented into the upload function:

 [Parameter(Mandatory = $true,
        HelpMessage = 'Linked server name string')]
        [String]$LinkedServer = "",
...
		write-verbose "$instance : Uploading $($FileBytes.Length) bytes to: $OutputFile"           
		$QueryFileUpload = @"
EXEC ('
DECLARE @ob INT;
EXEC sp_OACreate ''ADODB.Stream'', @ob OUTPUT;
EXEC sp_OASetProperty @ob, ''Type'', 1;
EXEC sp_OAMethod @ob, ''Open'';
EXEC sp_OAMethod @ob, ''Write'', NULL, 0x$FileData;
EXEC sp_OAMethod @ob, ''SaveToFile'', NULL, ''$OutputFile'', 2;
EXEC sp_OAMethod @ob, ''Close'';
EXEC sp_OADestroy @ob;') AT [$LinkedServer];
"@
		# Execute query    
		$null = Get-SQLQuery -Instance $Instance -Path $LinkedServer -Query $QueryFileUpload -Username $Username -Password $Password -Credential $Credential -SuppressVerbose 	
...	

For me editing this part of the code it was possible to upload and download files through linked SQL servers, but it's not perfect. If needed I can further modify both the upload and download functions and make a Pull Request.

Regards,

MuhoX

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions