wmic trava no Cygwin

2

Se eu abrir o Cygwin no rxvt, executar wmic não mostrará o prompt wmic:root\cli> esperado. Se eu executar C:\cygwin\bin\bash.exe de cmd.exe , executar wmic dentro de bash.exe retornará o prompt esperado. Por quê?

Eu tenho a variável de ambiente CYGWIN definida como ntsec tty . Eu posso echo "hello" com uma resposta e tudo parece feliz. É apenas quando eu executo o wmic e alguns outros aplicativos do Windows que possuem um prompt, o prompt nunca aparece.

    
por User1 16.07.2010 / 00:02

4 respostas

5

Para o wmic, tente usar echo '' | wmic <query here> , onde <query here> é sua consulta desejada.

Por exemplo, para obter a etiqueta de serviço de uma máquina Dell através do SSH: echo '' | wmic bios get serialnumber .

Começar o modo interativo para funcionar parece inútil para mim, mas isso deve expor a maior parte da funcionalidade do wmic para você.

Tentativas falhadas:

Uma solução alternativa que li foi usar < /dev/null no final, em vez de um echo '' | na frente, ou seja, wmic bios get serialnumber < /dev/null . Eu não estou, no entanto, tendo sorte com este. (de thread de Nabble )

Outra solução alternativa que li foi tentar definir tty na variável ambiental CYGWIN . Isso não teve sorte para mim também. (de uma postagem de Larry Hall na lista de discussão do Cygwin, não vinculada devido à prevenção de spam)

    
por 21.09.2010 / 23:44
2

É a questão do aplicativo console nativo do Cygwin pty vs ye olde. O Rxvt é baseado em um "pseudo terminal device" (pty), que o Cygwin implementa usando pipes do Windows. Os aplicativos que não são do Cygwin só veem os canais do Windows, o que faz com que alguns deles pensem que devem entrar no modo não interativo sem um prompt. (Mais especificamente, a função isatty () retorna false quando invocada em um pipe.)

    
por 16.07.2010 / 11:53
1

Dependendo da versão do Cygwin que você está usando, talvez você precise aproveitar o < / dev / null. Acredito que estou usando o 1.7 e não preciso mais usar o < / dev / null na maioria das versões do Windows (a exceção é o Windows 2003 R2, você ainda deve usar o < / dev / null.)

Aqui está um exemplo:

wmic bios (funciona em quase todas as versões do Windows) bios bios < / dev / null (funciona em todas as versões do Windows com base nos meus testes)

Espero que isso ajude.

    
por 05.04.2012 / 14:12
0

echo não é necessário.

Executar no prompt do 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.
------------------------------------------------------
    
por 21.11.2014 / 18:45

Tags