Sh файл, который делает перезагрузку сервера, тогда необходимо, и я должен преобразовать эту команду в .batch для Windows и в Powershell. Я не могу найти, как передать переменные для пользователя, передать и инструкцию не проверять SSL-сертификат в версия для windows. Кто-нибудь может помочь? благодарю вас

Linux SH файл (рабочий)

#!/bin/sh
ip_address=192.168.0.5
username=myuser
password=mypass
wget --no-check-certificate --user=$username --password=$password -qO- https://$ip_address/reboot

Пакетный файл Windows (в процессе)

@echo off
set ip_address=192.168.0.5
set username=myuser
set password=mypass
start https://%ip_address%/reboot
rem so far it open the requested URL, but it checks the SSL certificate so it blocks the execution, and i don't know how to pass user and password

1 ответ1

0

Powershell

Нечто подобное должно делать.

$user = "user"
$pass = "password"
$secpass = ConvertTo-SecureString $pass -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential($user, $secpass)

Invoke-WebRequest -Uri "https://$ip_address/reboot" -SkipCertificateCheck -Credential $credential

Обратите внимание, что -SkipCertificateCheck доступен только в PowerShell 6.0. [1]

ЛЕТУЧАЯ МЫШЬ

start in batch file запускает связанный обработчик по своему аргументу (для URL, как в вашем случае это будет браузер по умолчанию)

Для достижения вашей цели вы должны установить wget для окон (или curl для окон) и использовать его с теми же аргументами, что и в исходном сценарии оболочки.

Я думаю, что нет никаких способов сделать то, что вы хотите в файлах cmd/bat, используя только стандартные функции. Однако некоторые WMI Wizardry могут сделать свое дело.

[1] https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-6
[2] http://gnuwin32.sourceforge.net/packages/wget.htm
[3] https://curl.haxx.se/windows/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .