Quantcast
Channel: PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources
Viewing all articles
Browse latest Browse all 6937

Using Power Shell to run scripts on a remote computer

$
0
0

I have been tasked with a job of creating a power shell script that can be run from the command prompt that will make use of Microsoft Word (2013) to open a specified word document and save it as a PDF document.

Of which I was successful in creating a short script to do the job, as follows…

$word=new-object -comobject word.application

$doc=$word.documents.open("c:\TEST.docx")

$doc.saveas([ref]"c:\test.pdf", [ref]17)

$doc.Close()

$word.Quit()

Which once saved as a ps1 file works well when run with the use of following command…

powershell.exe -ExecutionPolicy ByPass -file c:\SaveToPDF.ps1

However I have subsequently been asked too allow this script to be run on a remote computer. So I have started investigating this feature and have been able to create another power shell script that will run a command line job on a remote computer, as follows, that will run the help command

$Username = "Username"

$Password = "PWD123"

$ComputerName = "PC-RemoteApps"

$Script = {help}

$SecurePassWord = ConvertTo-SecureString -AsPlainText $Password -Force

$Cred = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $Username, $SecurePassWord

$Session = New-PSSession -ComputerName $ComputerName -credential $Cred

$Job = Invoke-Command -Session $Session -Scriptblock $Script

echo $Job

Remove-PSSession -Session $Session

Which also works and the results of the help command are echoed back to the local PC. So the next step is to simply change the $Script variable to include the command I wish to run to action the conversion of the Word document to PDF, as follows…

$Script = {powershell.exe -ExecutionPolicy ByPass -file c:\SaveToPDF.ps1}

However, this generates an error (See Below) that does not make much sense seeing how the script works when run on the remote PC just fine…

You cannot call a method on a null-valued expression.

    + CategoryInfo          : NotSpecified: (You cannot call...ued expression.:String) [], RemoteException

    + FullyQualifiedErrorId : NativeCommandError

 At C:\SaveToPDF.ps1:4 char:12

 + $doc.saveas <<<< ([ref]"c:\test.pdf", [ref]17)

     + CategoryInfo          : InvalidOperation: (saveas:String) [], RuntimeExc

    eption

     + FullyQualifiedErrorId : InvokeMethodOnNull

  

You cannot call a method on a null-valued expression.

 At C:\SaveToPDF.ps1:5 char:11

 + $doc.Close <<<< ()

     + CategoryInfo          : InvalidOperation: (Close:String) [], RuntimeExce

    ption

     + FullyQualifiedErrorId : InvokeMethodOnNull

  

I have even tried to include the power shell script command directly into the remote processing script, as follows…

 $Script = {

 $word=new-object -comobject word.application

$doc=$word.documents.open("c:\TEST.docx")

$doc.saveas([ref]"c:\test.pdf", [ref]17)

$doc.Close()

$word.Quit()

 }

 Where I is still get an error that basically tells me the same thing, as follows…

 

You cannot call a method on a null-valued expression.

    + CategoryInfo          : InvalidOperation: (saveas:String) [], RuntimeException

    + FullyQualifiedErrorId : InvokeMethodOnNull

 

You cannot call a method on a null-valued expression.

    + CategoryInfo          : InvalidOperation: (Close:String) [], RuntimeException

    + FullyQualifiedErrorId : InvokeMethodOnNull

 

It looks to me as though the $doc variable is not set to anything and therefore the SaveAs() and Close() methods cannot be called. Yet the source file ("c:\TEST.docx") exists in this location on the remote PC and the commands do run OK when run on the remote PC.

I have even moved the test files to network locations that both the Local and Remote PC have read write access too and I still get the same set of errors.

So at this point I have come to you guys to see if you can let me know what I am missing.

Hope you can help

Thanks

 

Carl


Viewing all articles
Browse latest Browse all 6937

Trending Articles