how to loop through all server names??

Welcome Forums General PowerShell Q&A how to loop through all server names??

This topic contains 0 replies, has 1 voice, and was last updated by  Forums Archives 7 years ago.

  • Author
    Posts
  • #5039

    Member
    Points: 0
    Rank: Member

    by tommls at 2012-08-23 08:17:41

    I found this code to get all the server names in our domain:

    "Here's an alternate way to poll AD for all servers using Microsoft's AD module: Get-ADComputer -Filter {operatingsystem -like "*server*"}"

    What I want to do is loop through the servers and copy certain files from each server to a different name onto a backup location.

    e.g.
    foreach servername
    copy servername\C$\file.txt to \\foo\backup\configs\ + servername + "_file.txt"
    next

    basically backup each file.txt within each server to a new file prefixed by the servername

    I'm stumped on how to loop through the server names, first I want to get that working, then figure out the copy file.txt to a new filename.txt on another storage...

    Thank you, Tom

    by JeffH at 2012-08-23 10:45:30

    Have you tried Get-ADComputer yet? What you get back is an object like this:

    DistinguishedName : CN=CHI-DB01,CN=Computers,DC=GLOBOMANTICS,DC=local
    DNSHostName : CHI-DB01.GLOBOMANTICS.local
    Enabled : True
    Name : CHI-DB01
    ObjectClass : computer
    ObjectGUID : f276a122-4732-42d9-b5e0-14d1ab84cccb
    SamAccountName : CHI-DB01$
    SID : S-1-5-21-2552845031-2197025230-307725880-1138
    UserPrincipalName :

    So you'll want to use the Name property. I would get all the computers and save them to a variable.

    $servers=Get-ADComputer -Filter {operatingsystem -like "*server*"}

    Now, I can do this
    foreach ($server in $servers) {
    Write-Host "Copying files from $($server.name)" -foreground green
    #insert your copy commands here
    }

    by tommls at 2012-08-23 10:57:55

    the variable part is what I was looking for, I already had the Get-ADComputer part in my original post.

    however I need to check if the server is up and running...
    I found this:
    If (Test-Connection remotehost -quiet) {
    Write 'Reachable!'
    }
    where I'd change remotehost to $server??
    and where it says 'reachable' I'd do the copy stuff
    if Test-Connection is false don't do anything...
    Now I must test all this..

    I found this code in your Morning Script (I am NOT a Mornng Person.):
    (Test-Connection -ComputerName $computername -quiet -Count 2)
    I'll try this too...thank you for writing Morning Script...

    Thank you for your help!!
    Tom

The topic ‘how to loop through all server names??’ is closed to new replies.