Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Переименовать несколько ПК через csv (http://forum.oszone.net/showthread.php?t=332710)

Jehn 22-01-2018 15:25 2793070

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

$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 22-01-2018 15:44 2793074

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

Казбек 22-01-2018 16:44 2793086

Код:

$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 23-01-2018 07:14 2793214

Всем спасибо. Вы и ребята с 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, в то он на каждое переименование спрашивал логин\пароль.


Время: 18:20.

Время: 18:20.
© OSzone.net 2001-