создать var из .exe вывода в powershell - PullRequest
0 голосов
/ 25 мая 2011

Мне нужно сделать переменную из идентификационного номера имени пользователя

qwinsta.exe /server:vm041 derpy.herp

Возвращает следующий вывод

SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
                  derpy.herp                3  Disc

Мне нужно создать переменную в powershell со значением 3 согласно выводу выше.

Этот код будет использоваться для просмотра нескольких серверов, чтобы определить, вошел ли в систему отдельный пользователь, и отключить их с помощью rwinsta.exe

Ответы [ 2 ]

3 голосов
/ 25 мая 2011

Вот довольно грубое регулярное выражение - я не знаю qwinsta.exe, поэтому я не уверен в перестановках данных, которые он может вернуть - хотя это работает с вашим примером выше.

Это присвоит 3 переменной $ ID.

$output = qwinsta.exe /server:vm041 derpy.herp
$output -match ".*derpy.herp.*(\d).*"
$ID = $Matches[1]

Вы можете параметрировать имя пользователя следующим образом:

$username = "derpy.herp"
$output = qwinsta.exe /server:vm041 $username
$output -match ".*$username.*(\d).*"
$ID = $Matches[1]

HTH, Matt

0 голосов
/ 25 мая 2011

Вы можете проанализировать полученный результат, получить свой идентификатор и затем использовать New-Variable командлет для создания экземпляра вашей переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...