Я пытаюсь запустить это из .cmd с запуском от имени администратора.
powershell -Command "&{ Start-Process powershell Add-Computer -Domain "domain.domain" -Credential login -Verb RunAs -Wait -Confirm}"
Окно для ввода пароля появляется, но после того, как я ввожу пароль, меня встречает следующая ошибка в моем пакетном сценарии.
Start-Process : O conjunto de parâmetros não pode ser resolvido usando os parâmetros nomeados especificados.
No linha:1 caractere:4
+ &{ Start-Process powershell Add-Computer -Domain domain.domain -Cr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartProcessCommand
Я хочу присоединиться к домену с помощью скриптов, я пытался использовать netdom, но это эксклюзивно для серверов. Я имею дело с клиентскими ноутбуками с Windows 10, очень далеко от сервера, и у меня нет доступа администратора к домену сервера. Я просто форматирую огромное количество компьютеров до определенного состояния, включая присоединение к домену. Меня не волнует, как я присоединяюсь к домену, пока я присоединяюсь к домену автоматически (если невозможен запрос пароля допустимо), из пакетного или powershell-скрипта и без установки чего-либо.
Как насчет использования следующего в файле .cmd:
powershell -executionpolicy bypass -noexit "& ""C:\your\path\to\domainjoinscript.ps1"""
из
Флаг -executionpolicy bypass
означает, что по умолчанию PowerShell не позволяет запускать ненадежные сценарии (даже если вы их создали). Либо вам нужно отключить политику выполнения для всей системы, либо сделать это так.
Ваш файл .ps1
должен содержать:
add-computer -domainname "yourdomain" -restart
Спасибо! Это решило мою проблему, теперь я столкнулся с другой проблемой... непосредственно перед запуском этого скрипта я изменил имя компьютера на это... ... set /P newname = "what is the computer name?" wmic computersystem where name ='%computername%' call rename name='%newname%' ... Но я не могу присоединиться к домену, потому что предыдущее имя все еще используется... знаете ли вы, как я могу обойти необходимость делать две перезагрузки компьютера ? один для переименования и один для домена?
$env:computername содержит имя компьютера. Вы должны быть в состоянии переименовать и присоединиться к одной перезагрузке, как в панели управления, но у меня были проблемы с этим. Нужен ли -noexit? Вам не понадобятся учетные данные домена?
Также обратите внимание на усиление защиты присоединения только для владельцев после обновления от октября 2022 года: support.microsoft.com/en-us/topic/…