Использование переменных powershell для изменения имени ПК и Doamain в командной строке - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь создать командный файл для изменения имен и домена на новые ПК.

Добавление в часть домена работает нормально, но часть имени компьютера не

Я что-то упустил при использовании переменной в -NewName, поскольку я получаю сообщение об ошибке:

NewName не может быть пустым или пустым.

Если язапускайте команды прямо в окне powershell, они работают просто отлично.

:: Change Computer Name
powershell -command "$pcname = Read-Host -Prompt 'Input the new PC name'"
powershell -command "Rename-Computer -NewName $pcname"

:: Add PC to the Domain
powershell -command "add-computer -domainname domain.name -Credential AD\admin.user"

Кроме того, мой первоначальный план именования ПК был немного другим.

Например,все компьютеры названы так, чтобы они включали отдел и номер в названии.Допустим, у меня есть 2 отдела: «Креатив» и «Служба поддержки».Таким образом, оригинальное имя ПК (я восстанавливаю из готового образа) будет CSR и GFX соответственно.Поэтому мне нужно только изменить номер!

Я пытался написать команду, которая объединит текущее имя ПК + номер, который пользователь введет при запросе в окне CMD.Не повезло этой части, и я думаю, что проблема была снова в том, чего мне не хватает, в том, как использовать эту переменную в сценарии cmd.

Спасибо за ваше время!

1 Ответ

0 голосов
/ 25 октября 2018

Add-Computer имеет параметр NewName, поэтому вы можете присоединиться к домену и переименовать компьютер с помощью одной команды:

Add-Computer -DomainName domain.name -Credential AD\admin.user -NewName (Read-Host -Prompt 'Input the new PC name')

Вы можете получить текущее имя компьютераиспользуя переменную $env:computername, поэтому объедините это с Read-Host, чтобы запросить номер, и используйте его с текущим именем:

Add-Computer -DomainName domain.name -Credential AD\admin.user -NewName "$env:computername$(Read-Host -Prompt 'Enter PC Number')"

Я бы также удалил пакетный файл из процесса,PowerShell вытеснил пакет и может делать все возможное и даже больше.

Просто сохраните ваши команды в текстовом файле с расширением .ps1.Затем это файл сценария powershell, и вы можете запустить его напрямую (щелкните правой кнопкой мыши и выберите «запустить с powershell») или через командную строку, если вы автоматизируете этот процесс:

powershell -File C:\folder\script.ps1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...