Author Posts

July 19, 2017 at 6:56 pm

I have a config file: Agent File installed on 80 Servers with the same name "agent.conf" .
What I want to do is to copy all files from all adcomputers then rename them according to each server name to one localtion
Like $Computers = Get-ADComputers -Filter * | Select -Expand Name
then loop through each and go to C:\path and copy each file and attach $_computer name to that file

July 19, 2017 at 7:19 pm

Hi

Look this link, it will provide what you need, https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/copy-item

Example 8: Copy a file to a remote computer and then rename the file

PS C:\> $Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\PattiFul"
PS C:\> Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session

Same idea, but you'll need to reverse it basically. Copy from remote computer and rename it with computername. Also you'll need to have PS Remoting enabled on the computers, otherwise youll need to use \\computername\c$\path, if that's also enabled.

How I would do it, Collect your servers, test-connection that those are online, if not catch offline computers and if it is online, copy file with new name, also could catch servers that do not have the file for example.

Regards

Jarkko

July 21, 2017 at 4:55 pm

thanks Jarkko. Figured it out

 $PCs = Get-ADComputer -filter * | Select -expand Name
foreach ($PC in $PCs) { Copy-Item -Path \\$PC\C$\File_agentd.conf -Destination \\DC1\C$\CFiles\File_agentd_$PC.conf}