2015-04-29 4 views
1

Я пытаюсь использовать qwinsta и rwinsta с кодом powershell. Когда я пытаюсь запустить это, я получаю сообщение об ошибке «Термин« qwinsta »не распознается как имя командлета, функции, файла сценария или исполняемой программы». Мне нужно иметь возможность делать это удаленно на нескольких машинах без необходимости добавлять какие-либо DLL-файлы или модули к другим машинам. Я попробовал модуль Powershell Terminal Services, но вы должны уметь это на удаленных машинах, и я не могу этого сделать.Использование qwinsta в PowerShell ISE

В пределах powershell ISE, как бы я запустил qwinsta? Я не собираюсь разбирать информацию, просто собираю ее. Это следующий код, который я попробовал (который я нашел на этом сайте, также):

function Get-TSSessions { 
    param(
     $ComputerName = "localhost" 
    ) 

    qwinsta /server:$ComputerName | 
    #Parse output 
    ForEach-Object { 
     $_.Trim() -replace "\s+","," 
    } | 
    #Convert to objects 
    ConvertFrom-Csv 
} 
Get-TSSessions -ComputerName "localhost" | ft -AutoSize 
+0

Вы не можете использовать полный путь? Не похоже, что это должно быть где-то иначе, чем 'C: \ Windows \ System32 \ qwinsta.exe'. –

+0

Команда 'qwinsta' является псевдонимом для' query session'. –

+1

Возможный дубликат [Разделить текст по столбцам в PowerShell] (http://stackoverflow.com/questions/29125337/split-text-by-columns-in-powershell) –

ответ

1

Лучшие У меня есть то, что вы работаете PowerShell ISE (x86). Когда я запускаю команду qwinsta, я получаю ту же ошибку, что и вы. Это, конечно, предполагает, что у вас 64-разрядная ОС.

Термин «qwinsta» не распознается как имя командлета, функции, файла сценария или исполняемой программы. Проверьте правильность написания имени, или если путь был включен, убедитесь, что правильный путь и попробуйте еще раз

Проверьте архитектуру PowerShell ISE. Это правильно в заголовке. В этом отношении вы можете сделать только «PoweShell ISE» и не «PowerShell ISE (x86)». Проверка на то, что это так. qwinsta не должен быть доступен для 32-битной оболочки.

С qwinsta.exe находится в C: \ windows \ system32, что местоположение относительно ISE x86 будет C: \ Windows \ SysWOW64, которое не содержит этот исполняемый файл. Примечание: это рассуждение - это предположение, и логика может быть ошибочной.

Синтаксический QWINSTA

Иметь хороший взгляд на ответы здесь для синтаксического анализа qwinsta: Split text by columns in PowerShell

FYI одна из них принадлежит мне.

+0

Привет, Мэтт, может быть, я не понимаю, что-то новое для powershell. Я запускаю PowerShell ISE (x86), моя версия 3.0. Я не уверен, что вы имеете в виду, проверяя архитектуру ISE. Я просмотрел текст Split по столбцам в Powershell, и моя проблема не анализирует данные, просто пытаясь получить данные. Я даже не могу это получить. – sk1919

+0

@ sk1919 Существуют и другие решения, но я предлагаю вам запустить 64-битную оболочку и рассказать мне, что происходит (без x86 на ней). Обновлен ответ, чтобы быть более четким. Я согласен, что раскол не является вашей проблемой. Переключатель, с которым вы работаете, - это то, что я пытаюсь сказать вам. – Matt

+0

Хорошо, спасибо @Matt. Я пробовал это и, похоже, работает. Очень ценю помощь! – sk1919