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

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

nokogerra 07-11-2014 08:25 2425892

Переименование компьютеров домена netdom+csv
 
Доброго времени суток.
Использую 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 2425899

netdom renamecomputer $oldName /newName:$newName /uD:domain\user '/passwordD:P@$$w0rd1' /force /reboot:30

Iska 07-11-2014 08:59 2425902

Цитата:

Цитата nokogerra
если задать пароль строчно после "/passwordD:", то аутентификация не проходит »

В кавычки обрамить пароль пробовали?

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

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

nokogerra 07-11-2014 09:06 2425907

И вы выигрываете ааааавтомобиль! Спасибо. А можете объяснить почему в апострофе все выражение?

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

Iska 07-11-2014 09:51 2425928

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 2425938

Я примерно понял. Примерно. Понял.
Спасибо :)


Время: 11:19.

Время: 11:19.
© OSzone.net 2001-