在powershell中从.exe输出创建var

时间:2011-05-25 07:38:48

标签: powershell

我需要从用户名的ID号中创建一个变量

qwinsta.exe /server:vm041 derpy.herp

返回以下输出

SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
                  derpy.herp                3  Disc

我需要在powershell中创建一个变量,其值为3,按照上面的输出。

此代码将用于查看多个服务器以查看单个用户是否已登录并使用rwinsta.exe断开连接

2 个答案:

答案 0 :(得分:3)

这是一个非常粗略的正则表达式 - 我不知道qwinsta.exe所以我不确定它可以返回的数据的排列 - 这适用于上面的例子。

这将为变量$ ID分配3。

$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, 马特

答案 1 :(得分:0)

您可以解析所获得的输出,获取您的ID,然后使用New-Variable cmdlet来实例化您的变量。