Если я открою Cygwin в rxvt, запустив wmic
не показывает ожидаемого wmic:root\cli>
Подсказка. Если я выполню C:\cygwin\bin\bash.exe
из cmd.exe
, Бег wmic
внутри bash.exe
возвращает ожидаемое приглашение. Зачем?
У меня есть переменная окружения CYGWIN
установлен в ntsec tty
. Я могу echo "hello"
с ответом, а все остальное кажется счастливым. Просто когда я запускаю wmic и несколько других приложений Windows, у которых есть запрос, оно никогда не появляется.
Для wmic попробуйте использовать echo '' | wmic <query here>
, где <query here>
ваш желаемый запрос.
Например, чтобы получить сервисную метку машины Dell по SSH: echo '' | wmic bios get serialnumber
.
Работа интерактивного режима кажется мне бесполезной, но это должно раскрыть вам большую часть функциональности wmic.
Неудачные попытки:
Одно альтернативное решение, которое я прочитал, заключалось в использовании < /dev/null
в конце вместо echo '' |
спереди, то есть: wmic bios get serialnumber < /dev/null
. Однако мне не повезло с этим. (из Nabble thread)
Другое альтернативное решение, которое я прочитал, заключалось в попытке установить tty
в CYGWIN
переменная окружающей среды. Мне это тоже не повезло. (из сообщения Ларри Холла в списке рассылки Cygwin, ссылка на который отсутствует из-за предотвращения спама)
Это старая проблема Cygwin pty с собственным консольным приложением. Rxvt основан на «псевдотерминальном устройстве» (pty), которое Cygwin реализует с помощью каналов Windows. Приложения, не относящиеся к Cygwin, видят только каналы Windows, что заставляет некоторых из них думать, что им следует переходить в неинтерактивный режим без запроса. (Более конкретно, функция isatty () возвращает false при вызове в конвейере.)
В зависимости от версии Cygwin, которую вы используете, вам, возможно, придется использовать файл </ dev / null. Я считаю, что использую 1.7, и мне больше не нужно использовать </ dev / null в большинстве версий Windows (исключение составляет Windows 2003 R2, вы все равно должны использовать </ dev / null.)
Вот пример:
wmic bios (работает почти во всех версиях Windows) wmic bios </ dev / null (работает во всех версиях Windows на основе моего тестирования)
Надеюсь это поможет.
эхо не требуется.
Запускаем в командной строке cygnin:
Administrator@darwin-test7-wi ~
$ wmic pagefileset where 'name="C:\\pagefile.sys"' delete
Deleting instance \\DARWIN-TEST7-WI\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys"
Instance deletion successful.
=============================================
Administrator@darwin-test7-wi ~
$ wmic pagefileset create name="C:\\pagefile.sys"
Instance creation successful.
-----------------------------------------------------
Administrator@darwin-test7-wi ~
$ wmic pagefileset where 'name="C:\\pagefile.sys"' set InitialSize=512,MaximumSize=512
Updating property(s) of '\\DARWIN-TEST7-WI\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys"'
Property(s) update successful.
------------------------------------------------------