Forum Discussion

dmarquesgn's avatar
dmarquesgn
Iron Contributor
Jul 25, 2022

Running remote script to write in file share

Hi,

I'm building a script for checking, downloading and installing updates on Windows Servers, using the PSWindowsUpdate module.

My goal is to go to one server a time, check for updates and write a log file in csv format to a fileshare, so after I can parse that CSV file to do some checks and then apply the updates later on.

The issue is that when running the script (from a server), I get the message:
"Access to the path '\path\filename.csv' is denied."


But if I go directly to the server itself and run the command, it works, as the server has permissions over that folder. 
So it's something while I'm running the script remotely that is not right.
I've tried several ways, like:

- Enter-PSSession
- Invoke-Command -ComputerName $server { command }

- Invoke-Command -Session $s -ScriptBlock { command }

So what I am missing here?

 

Thanks

11 Replies

    • dmarquesgn's avatar
      dmarquesgn
      Iron Contributor
      Hi,
      Thanks for the notes. Now I understand which is the issue.
      But still having some problems to solve it.
      Tried the New-PSDrive method, but I have an error. My code is this:
      $cred = Get-Credential domain\user (user is domain admin)
      $s = New-PSSession -ComputerName servername
      Invoke-Command -Session $s -ScriptBlock { New-PSDrive -Name Z -PSProvider FileSystem -Root \\path -Persist }
      Got this error:
      Access is denied
      + CategoryInfo : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
      + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
      + PSComputerName : servername

      Also, tried this method here, which seemed the easiest one:
      https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/ps-remoting-second-hop?view=powershell-7.2#pass-credentials-inside-an-invoke-command-script-block
      But still permissions error.

      Do you have any idea of how could I solve this issue? I'm thinking if it would help to create and run a local schedule task, and that way we would avoid a second hop right?

      Thanks
      • farismalaeb's avatar
        farismalaeb
        Iron Contributor

         

        dmarquesgn 

        Hi
        I assume that the user have the correct permission to perform the required action.
        Try the following code

        $Cred=Get-Credential
        Invoke-Command -ComputerName Server1 -ScriptBlock {New-PSDrive -Root '\\FileServer.FQDN.local\MyShare' -PSProvider FileSystem -Name X -Credential $Using:Cred -Persist;Set-Content -Path 'X:\myfile.txt' -Value 'www2w111'}

Resources