如何输出 quser 中的所有用户名到变量中?


PowerShell交流中心如何输出 quser 中的所有用户名到变量中?
0
yenange asked 8 年 ago

quser 可以输出所有登录的用户信息,但我想汇总这些用户名到一个字符串变量中。 我下面的做法是不能输出的, 请问还有什么办法? $=”” quser | foreach-object { $s=$s+$_.用户名 } $s

2 Answers
1
Best Answer
Mooser Lee 管理员 answered 8 年 ago

将(quser.exe) 的命令行文本转换成PowerShell 对象。然后过滤就可以了。

 

PS> (quser.exe) -replace '\s{2,}',',' | ConvertFrom-Csv


USERNAME    : >mosser
SESSIONNAME : console
ID          : 2
STATE       : Active
IDLE TIME   : 3+18:50
LOGON TIME  : 4/25/2016 9:36 AM



PS> $a=(quser.exe) -replace '\s{2,}',',' | ConvertFrom-Csv
PS> $a.USERNAME
>mosser
PS> $a.'LOGON TIME'
4/25/2016 9:36 AM
yenange replied 8 年 ago

谢谢, 请问在 SQL Server 的作业中无法执行是什么原因呢?

Mooser Lee 管理员 replied 8 年 ago

SQL Server是一个Service,可能叫做SQL agent,这个service有一个run as,你最好改成域账号,或者本机的账号,而不是一个service account。

yenange replied 8 年 ago

http://www.pstips.net/question/5461.html 这个帮忙看看, 谢谢

0
yenange answered 8 年 ago

搞定了:  $s=quser $s   不过, 不明白为什么在 sqlserver 的作业(PowerShell类型)中无法获取到结果, 提示: 已以用户 NT Service\SQLAgent$xxxx 的身份执行。 作业脚本遇到了以下错误。这些错误未停止脚本:  作业步骤在 PowerShell 脚本的行 1 中接收到错误。对应行为“$s=quser”。更正脚本并重新安排作业。PowerShell 返回的错误信息为“* 没有用户  ”.  进程退出代码 0。.  该步骤成功。