PowerShell: Copy item doesn't work despite the same process that works with Windows Explorer

I have a script that needs to copy files on a regular basis (every hour). I can open source and destination folder using Windows Explorer and copy the file without issue.

However, if I try the same thing in PowerShell, I get access to the path denied by the error. I have checked the share permissions and I have full access. Why is this happening with PowerShell?

Copy-Item Command:

Copy-Item \\idmststtrm2\tns_admin$\tnsnames.ora -Destination \\bts13r2b\tnsnames -Force

      

Errors:

Copy-Item : Access to the path '\\bts13r2b\tnsnames\tnsnames.ora' is denied.
At line:1 char:1
+ Copy-Item \\idmststtrm2\tns_admin$\tnsnames.ora -Destination \\bts13r2b\tnsnames ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : PermissionDenied: (\\idmststtrm2\tns_admin$\tnsnames.ora:FileInfo) [Copy-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : CopyFileInfoItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.CopyItemCommand

Copy-Item : Access to the path '\\bts13r2b\tnsnames\tnsnames.ora' is denied.
At line:1 char:1
+ Copy-Item \\idmststtrm2\tns_admin$\tnsnames.ora -Destination \\bts13r2b\tnsnames ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Copy-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.CopyItemCommand

      

Changes:

When I follow Get-ChildItem

the destination path, I can see the contents of the folder.

Element retrieval results:

get-item \\idmststtrm2\tns_admin$\tnsnames.ora

Directory: \\idmststtrm2\tns_admin$


Mode                LastWriteTime     Length Name                                                                      
----                -------------     ------ ----                                                                      
-a---         3/10/2017   8:49 AM      14143 tnsnames.ora                                                              


get-item \\bts13r2b\tnsnames\tnsnames.ora

Directory: \\bts13r2b\tnsnames


Mode                LastWriteTime     Length Name                                                                      
----                -------------     ------ ----                                                                      
-a---          3/8/2017   9:51 AM      15991 tnsnames.ora 

get-item \\bts13r2b\tnsnames

Directory: 


Mode                LastWriteTime     Length Name                                                                      
----                -------------     ------ ----                                                                      
d----         3/21/2017  11:14 AM            tnsnames   

      

Tried using xcopy:

xcopy \\idmststtrm2\tns_admin$\tnsnames.ora \\bts13r2b\tnsnames\tnsnames.ora

Access is denied.

      

+3


source to share


3 answers


Try to open powershell as administrator, sometimes it causes this problem.



0


source


You have the right idea, but what if you try to use "Administrative Access" to access another system.

Some standard variables have been created: $Source

and $Target

. We now use the Get-ChildItem

switch -Path

to grab the required file or directory. We then use a Copy-Item

switch -Force

to send the file to another server. This method should work, but will describe a different method.

I assume it will look something like this.

$Source = "\\idmststtrm2\c$\app\oracle\product\11.2.0\dbhome_1\network\admin\tns_admin$\tnsnames.ora"
$Target="\\bts13r2b\c$\app\oracle\product\11.2.0\dbhome_1\network\admin\tnsnames"
Get-ChildItem -Path $Source | Copy-Item -Destination $Target -Force

      



Another option is to make sure that you have write access to both shared directories first. Once this is confirmed, we run the following:

$Source="\\idmststtrm2\tns_admin$\tnsnames.ora"
$Target="\\bts13r2b\tnsnames"
Get-ChildItem -Path $Source | Copy-Item -Destination $Target -Force
#(Get-Acl $Source).Access #Verify $Source Access
#(Get-Acl $Target).Access #Verify $Target Access

      

Let us know if it works.

0


source


This issue is related to the access rights to the network resource. Although the permissions were set correctly, the NTFS permissions were missing. The system administrator will need to ensure that both sets of permissions allow the account to write to the folder. Once this was properly updated the script was able to execute a copy of the network share.

0


source







All Articles