Различия WMIC в Linux против Windows - PullRequest
0 голосов
/ 29 октября 2019

Этот запрос wmic (NODE, USER, PASS все десенсибилизированы) ...

wmic /NODE:10.00.00.1 /LOCALE:MS_409 /PRIVILEGES:ENABLE /TRACE:OFF /INTERACTIVE:OFF /FAILFAST:OFF /USER:domain\my_user /PASSWORD:myPass! /OUTPUT:STDOUT /APPEND:STDOUT /AGGREGATE:ON class StdRegProv CALL EnumKey ^&H80000002,"Software\Microsoft\SystemCertificates\MY\Certificates"

^&H80000002 - это преобразование uint32 HKEY_LOCAL_MACHINE

... работает без ошибок в приглашении CMD в Windows. Я также могу запустить его в контексте пакета узла с моей локальной машины Windows, и я собираюсь предположить, что это потому, что вызов wmic сделан специально для локальной машины (Windows), где он обрабатывается без особых усилий. Возвращая мне результат, содержащий то, что мне нужно ...

res.sNames ['BB731A3DD8F089A6D4E59AF9D706 ...']

Я создал док-контейнер с Alpine и узломгде я размещаю экспресс-заявку. Я следовал приведенным ниже инструкциям, чтобы установить WMIC в Linux ...

https://askubuntu.com/questions/885407/installing-wmic-on-ubuntu-16-04-lts

Он успешно установлен.

Теперь, когда я запускаю точно такой же запрос из приглашения bashв Ubuntu через приложение Node или прямую команду я получаю такой результат:

Garne @ MYCOMPUTERNAME MINGW64 ~ $ wmic.exe /NODE:10.00.00.1 / LOCALE: MS_409 / PRIVILEGES:ВКЛЮЧИТЬ / ОТКЛЮЧИТЬ: ВЫКЛЮЧЕНО / ИНТЕРАКТИВНО: ВЫКЛЮЧЕНО / СБОЙ: ВЫКЛЮЧЕНО / ПОЛЬЗОВАТЕЛЬ: домен \ my_user / ПАРОЛЬ: myPass! / OUTPUT: STDOUT / APPEND: STDOUT / AGGREGATE: ON class StdRegProv CALL EnumKey ^ & H80000002, "Программное обеспечение \ Microsoft \ SystemCertificates \ MY \ Certificates"

[1] 426

bash: H80000002,Программное обеспечение \ Microsoft \ SystemCertificates \ MY \ Сертификаты: Нет такого файла или каталога

Garne @ MYCOMPUTERNAME MINGW64 ~ $ ОШИБКА: Описание = Доступ запрещен.

Не могу дляЯ решил, связано ли это с ошибкой форматирования строки в Linux против Windows или в Linux работает другой вариант wmic, который не разрешает мой запрос правильно?

1 Ответ

0 голосов
/ 29 октября 2019

Для всех, кому интересно, после нескольких часов тестирования это с очень неясными сообщениями об ошибках. Убедитесь, что вы избегаете абсолютно всего в стиле bash, а не в стиле Windows.

Примечание:

  • \$ вместо ^&
  • Перенос значения USER в''
  • Обернуть значение ПАРОЛЯ в ''

Ссылки здесь:

https://manpages.debian.org/buster/bash/bash.1.en.html#QUOTING

$ wmic /NODE:10.23.0.11 /LOCALE:MS_409 /PRIVILEGES:ENABLE /TRACE:OFF /INTERACTIVE:OFF /FAILFAST:OFF /USER:'domain\my_user' /PASSWORD:'myPass!' /OUTPUT:STDOUT /APPEND:STDOUT /AGGREGATE:ON class StdRegProv CALL EnumKey \&H80000002,"Software\Microsoft\SystemCertificates\MY\Certificates"
Executing (StdRegProv)->EnumKey()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ReturnValue = 0;
        sNames = {"BB731A3DD8F089A6D4E59AF9D70601F9CBB94A9D"};
};
...