<pre class=”brush:powershell”>
PS C:\User\test> quser.exe
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
User2 3 Disc 23:11 12/29/2017 3:54 PM
user1 rdp-tcp#0 4 Active . 1/1/2018 3:01 PM
PS C:\User\test> quser.exe | where {$_ -like “User1”}
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
user1 rdp-tcp#0 4 Active . 1/1/2018 3:01 PM
</pre>
大家好,本人是Powershell的新人,在此請教各位:在上述命令基礎上,如何運用管道進一步獲取用戶”User1″的 STATE狀態?
也就是類似Unix中的awk功能(awk -F {print $1, … , $NF} , 作爲菜鳥一名先謝謝各位了!
PS> (quser.exe) -replace '\s{2,}',',' | ConvertFrom-Csv | where { $_.USERNAME -eq '>user1' } USERNAME : >user1 SESSIONNAME : console ID : 1 STATE : Active IDLE TIME : none LOGON TIME : 12/19/2017 10:33 AM PS> ((quser.exe) -replace '\s{2,}',',' | ConvertFrom-Csv | where { $_.USERNAME -eq '>user1' }).STATE Active
谢谢慷慨解答!!!
麻烦再请教一下,(quser.exe) -replace ‘\s{2,}’,’,’ 中的 “ ”’\s{2,}’,’,’ “ 是什么意思?
尤其是这一段 \s{2,} 是以什么为分割符?
(quser.exe) 是先执行括号的内容
-replace是替换,可以使用正则的
‘\s{2,}’,’,’ 是正则方式把2个以上的空白字符替换为逗号,就变成csv格式了
| ConvertFrom-Csv 然后管道过去装成csv
| where { $_.USERNAME -eq ‘>user1’ } 然后是条件