user1890242
user1890242

Reputation: 79

How can i change server administrator name and password

I need to change the local administrator name and password on servers to those that are contained in a .csv

The CSV file contains a list with all the information in it whereby the Server, Administrator name and Passwords are different on each line

The csv is headed by three columns - Server,Admin,PW

How could this be done using Powershell?

I know i can set them all the same using this but they need to be as per each csv line.

foreach ($strComputer in get-content  c:\Servers.txt)
{

$Admin=[adsi]("WinNT://" + $strComputer + "/Administrator, user")
$Admin.psbase.rename("Newname")
$Admin.SetPassword("NewPW")

Upvotes: 0

Views: 1013

Answers (2)

weberik
weberik

Reputation: 2706

you can use the Import-Csv instead of get-content. then you can adress the variables by using the header names. asuming you have a file like:

Server,Admin,PW
bla1,bla2,bla3
blaA,blaB,blaC

the output of

foreach ($line in Import-Csv c:\Servers.txt) { echo $line.server }

would be:

bla1
blaA

just to complete your code, try this example:

foreach ($line in Import-Csv c:\Servers.txt)
{
$Admin=[adsi]("WinNT://" + $line.Server + "/Administrator, user")
$Admin.psbase.rename($line.Admin)
$Admin.SetPassword($line.PW)
}

Upvotes: 1

CB.
CB.

Reputation: 60928

try this ( not tested ):

import-csv c:\servers.txt | % {

$Admin=[adsi]("WinNT://" + $($_.Server) + "/Administrator, user")
$Admin.psbase.rename($($_.Admin))
$Admin.SetPassword($($_.PW))
$Admin.SetInfo() # I think it's needed
}

Upvotes: 1

Related Questions