PowerShell - [решено] Переименовать несколько ПК через csv

Ответить
Аватара пользователя
Jehn

PowerShell - [решено] Переименовать несколько ПК через csv

Сообщение Jehn »

Всем привет. Хочу переименовать компы таким скриптом из инета:


Цитата:



$CSVFile ="E:\PClist.csv"

$List = Import-Csv $CSVFile -Header OldName, NewName

Foreach ($Machine in $List) {Rename-Computer -ComputerName $Machine.OldName -NewName $Machine.NewName -DomainCredential domen\admin }



Выдает ошибку:


Цитата:



Rename-Computer : Не удается проверить аргумент для параметра "NewName". Аргумент пустой или имеет значение NULL. Укажи

те непустой аргумент, не имеющий значение NULL, после чего повторите выполнение команды.

E:\RenameDomainPC-PACK.ps1:3 знак:86

+ ... uter -ComputerName $Machine.OldName -NewName $Machine.NewName -Domain ...

+ ~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidData: ( [Rename-Computer], ParameterBindingValidationException

+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.RenameComputerCommand





Для проверки запускал скрипт:


Цитата:



$CSVFile ="E:\PClist.csv"

$List = Import-Csv $CSVFile -Header OldName, NewName

Foreach ($Machine in $List) {Write-host $Machine.Oldname, $Machine.NewName}



Список из файла выводит нормально в виде komp1;komp2 и т.д.



Помогите, люди добрые, кто чем может.
Аватара пользователя
Iska

Re: PowerShell - [решено] Переименовать несколько ПК через csv

Сообщение Iska »

Jehn, возможно, имеет смысл упаковать Ваш E:\PClist.csv в архив и приложить к сообщению.
Аватара пользователя
Казбек

Re: PowerShell - [решено] Переименовать несколько ПК через csv

Сообщение Казбек »

Код:

Код: Выделить всё

$cred = get-credential    
$Computers = import-csv c:\temp\rename.csv 
foreach ($Computer in $Computers){ 
Rename-Computer -NewName $Computer.NewName -ComputerName $Computer.Name -DomainCredential $cred -Restart
}



Код:

Код: Выделить всё

$a = Import-Csv ServerNames.csv -Header OldName, NewName
Foreach ( $Server in $a ) {Rename-Computer -ComputerName $Server.OldName -NewName $Server.NewName -DomainCredential Domain01\Admin01 -Force -Restart}
Аватара пользователя
Jehn

Re: PowerShell - [решено] Переименовать несколько ПК через csv

Сообщение Jehn »

Всем спасибо. Вы и ребята с ixbt натолкнули на мысль, что проблема в присвоении.

Эта сволочь присваивала к olname всю строку в виде komp1;komp2.

Заработало вот так:


Цитата:



$cred = get-credential

$CSVFile ="E:\PClist.csv"

$List = Import-Csv $CSVFile -Header OldName, NewName -Delimiter ";"

Foreach ($Machine in $List) {Rename-Computer -ComputerName $Machine.OldName -NewName $Machine.NewName -DomainCredential $cred}



Помогла еще вот эта штука $cred = get-credential, в то он на каждое переименование спрашивал логин\пароль.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»