Я хотел бы перезагрузить удаленный компьютер, который принадлежит домену. У меня есть учетная запись администратора, но я не знаю, как использовать ее из powershell.
Я знаю, что есть Restart-Computer
командлет и что я могу передать учетные данные, но если мой домен, например mydomain
, мое имя пользователя myuser
и мой пароль, mypassword
какой правильный синтаксис для его использования?
Мне нужно запланировать перезагрузку, чтобы не вводить пароль.
powershell
powershell-remoting
Все смотрят на меня
источник
источник
Ответы:
Проблема в
Get-Credential
том, что он всегда запрашивает пароль. Однако есть способ обойти это, но он включает в себя сохранение пароля в качестве безопасной строки в файловой системе.Следующая статья объясняет, как это работает:
Таким образом, вы создаете файл для хранения вашего пароля (в виде зашифрованной строки). Следующая строка запросит пароль и сохранит его в
c:\mysecurestring.txt
виде зашифрованной строки. Вам нужно сделать это только один раз:Везде, где вы видите
-Credential
аргумент команды PowerShell, это означает, что вы можете передатьPSCredential
. Итак, в вашем случае:Вам может потребоваться другое
-Authentication
значение переключателя, потому что я не знаю вашу среду.источник
ConvertTo-SecureString "password" -AsPlainText -Force
.$password = ConvertTo-SecureString "password" -AsPlainText -Force
Есть другой способ, но ...
НЕ ДЕЛАЙТЕ ЭТОГО, ЕСЛИ ВЫ НЕ ХОТИТЕ СВОЙ ПАРОЛЬ В ФАЙЛЕ СКРИПТА (не очень хорошая идея хранить пароли в скриптах, но некоторые из нас просто любят знать, как это сделать.)
Хорошо, это было предупреждение, вот код:
$cred
будет иметь учетные данные от Джона Доу с паролем "ABCDEF".Альтернативные способы получения пароля, готового к использованию:
источник
Что касается хранения учетных данных, я использую две функции (которые обычно находятся в модуле, который загружается из моего профиля):
И этот:
Вы используете это так:
Если файл учетных данных не существует, вам будет предложено в первый раз, в этот момент он будет хранить учетные данные в зашифрованной строке внутри XML-файла. Во второй раз, когда вы запустите эту строку, xmlfile будет там и будет открыт автоматически.
источник
Я должен запустить функции SCOM 2012 с удаленного сервера, который требует другой учетные данные. Я избегаю паролей в виде открытого текста, передавая выходные данные функции расшифровки пароля как входные данные для ConvertTo-SecureString. Для ясности это не показано здесь.
Мне нравится сильно печатать мои декларации. Объявление типа для $ strPass работает правильно.
источник
Вот два способа сделать это, если вы планируете перезагрузку.
Сначала вы можете создать задачу на одном компьютере, используя учетные данные, обладающие правами, необходимыми для подключения и перезагрузки другого компьютера. Это делает планировщик ответственным за безопасное хранение учетных данных. Команда перезагрузки (я парень из Powershell, но это чище):
SHUTDOWN /r /f /m \\ComputerName
Командная строка для создания запланированной задачи на локальном компьютере и удаленной перезагрузки другой:
SCHTASKS /Create /TN "Reboot Server" /TR "shutdown.exe /r /f /m \\ComputerName" /SC ONCE /ST 00:00 /SD "12/24/2012" /RU "domain\username" /RP "password"
Я предпочитаю второй способ, где вы используете свои текущие учетные данные для создания запланированного задания, которое запускается с системной учетной записью на удаленном компьютере.
SCHTASKS /Create /TN "Reboot Server" /TR "shutdown.exe /r /f" /SC ONCE /ST 00:00 /SD "12/24/2012" /RU SYSTEM /S ComputerName
Это также работает через графический интерфейс, просто введите SYSTEM в качестве имени пользователя, оставив поля пароля пустыми.
источник
Будьте очень осторожны с хранением паролей таким образом ... это не так безопасно, как ...
источник
Я видел один пример, который использует Import / Export-CLIXML.
Это мои любимые команды для решения проблемы, которую вы пытаетесь решить. И самый простой способ их использования.
Поэтому, если файл не существует локально, он запросит учетные данные и сохранит их. Это займет
[pscredential]
объект без проблем и скроет учетные данные как безопасную строку.Наконец, просто используйте учетные данные, как обычно.
Примечание по Securty :
Надежно хранить учетные данные на диске
Изменить: Просто перечитайте оригинальный вопрос. Вышеописанное будет работать до тех пор, пока вы инициализируете
[pscredential]
жесткий диск. То есть, если вы уроните это в свой сценарий и запустите сценарий, как только он создаст этот файл, а затем запустить сценарий без присмотра будет просто.источник
Решение
Для машин сборки
В предыдущем коде замените значения имени пользователя и пароля секретными («скрытыми от журналов») переменными среды вашей машины сборки.
Результаты теста по
и вы увидите
источник
почему бы тебе не попробовать что-то очень простое?
используйте psexec с командой 'shutdown / r / f / t 0' и списком ПК из CMD.
источник