Forum Discussion
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
- farismalaebSteel ContributorAnother option if you are in the session by using the Invoke-PSSession, to try a New-PSDrive
https://lazyadmin.nl/powershell/new-psdrive/- dmarquesgnIron ContributorHi,
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- farismalaebSteel Contributor
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'}
- farismalaebSteel ContributorYes, This is related to second hope jump and you need Kerberos Auth.
Read this link from here
https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/ps-remoting-second-hop?view=powershell-7.2