Войти

Показать полную графическую версию : [решено] Переименование компьютеров домена netdom+csv


nokogerra
07-11-2014, 08:25
Доброго времени суток.
Использую netdom для переименования машин домена и их перезагрузки. Машин много - составил csv со столбцами старое имя, новое имя, скрипт такого вида работает нормально:

Import-Csv "C:\users\nokogerra\Desktop\testx.csv" | foreach {
$oldName = $_.OldName;
$newName = $_.NewName;

netdom renamecomputer $oldName /newName:$newName /uD:domain\user /passwordD:* /force /reboot:30
}

Но каждый раз запрашивает пароль, если задать пароль строчно после "/passwordD:", то аутентификация не проходит, если задать в переменной аля $pass = "парольх" - также. Get-credential, очевидно, тоже не подойдет для команды netdom. Кто-то что-то еще может посоветовать?
Спасибо заранее.

Kazun
07-11-2014, 08:52
netdom renamecomputer $oldName /newName:$newName /uD:domain\user '/passwordD:P@$$w0rd1' /force /reboot:30

Iska
07-11-2014, 08:59
если задать пароль строчно после "/passwordD:", то аутентификация не проходит »
В кавычки обрамить пароль пробовали?

Update: опоздал ;).

Update2: кстати, да, для PoSH — одинарные, снаружи. Для параметра — двойные, вокруг пароля (предположительно, не проверялось).

nokogerra
07-11-2014, 09:06
И вы выигрываете ааааавтомобиль! Спасибо. А можете объяснить почему в апострофе все выражение?

update:
Хм, пока писал, Iska дал некоторые пояснения, значение параметра в двойных кавычках в posh - понятно, но про одинарные - все же не понял зачем все выражение, если должно быть достаточно такого /passwordD:"пароль"?

Iska
07-11-2014, 09:51
nokogerra, PowerShell — язык с препроцессорным [наверняка в PowerShell есть свой термин для этого] разбором символьных строк, заключённых в двойные кавычки. Строки, заключённые в одинарные кавычки, обрабатываются «как есть»:
$sVar = "мыла"

"Мама $sVar раму`r`nРабы не мы, мы не рабы`r`n$(1 + 1)"
'Мама $sVar раму`r`nРабы не мы, мы не рабы`r`n$(1 + 1)'
Поэтому, дабы символы в пароле, имеющие специальное назначение, трактовались «как есть», их надо либо экранировать апострофом, либо исключить из разбора, обрамив одинарными кавычками.

С другой стороны, если в пароле содержатся символы, являющиеся пробельными для функции «CreateProcess()», или которые могут быть восприняты как пробельные при разборе аргументов внутри утилиты «netdom.exe» — пароль также следует обрамить двойными кавычками (насколько я понимаю; не проверялось).

nokogerra
07-11-2014, 10:14
Я примерно понял. Примерно. Понял.
Спасибо :)




© OSzone.net 2001-2012