
[英]How to get the SharePoint workflow status for each SP item with a PowerShell script?
[英]How to get the status each logged in user status details
$dat = query user /server:$SERVER
该查询提供以下数据
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
>vm82958 console 1 Active 1:28 2/9/2018 9:18 AM
adminhmc 2 Disc 1:28 2/13/2018 10:25 AM
nn82543 3 Disc 2:50 2/13/2018 3:07 PM
我想获取每个独立的用户详细信息,例如STATE
, USERNAME
, ID
详细信息。 我尝试下面的代码,但它没有提供任何数据
foreach($proc in $dat) {
$proc.STATE # This is not working this command not giving any data.
$proc.ID # This is not working this command not giving any data.
}
请帮我。
$dat.GetType()
的结果是:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
这与StackOverflow的帖子非常相似,但是您的数据中包含空白字段。
一种解决方案是首先解决这个问题。 下面的示例,但这可能会破坏与您的示例非常不同的给定数据。 有关更健壮和完整的解决方案,请参阅Matt的评论
# replace 20 spaces or more with TWO commas, because it signifies a missing field
$dat2 = $dat.Trim() -replace '\s{20,}', ',,'
# replace 2 spaces or more with a single comma
$datTable = $dat2.Trim() -replace '\s{2,}', ',,'
foreach($proc in $datTable) {
$proc.STATE
$proc.ID
}
另一个选择是将固定的Columns与string.Insert
一起使用,如下所示:
$content = quser /server:$SERVER
$columns = 14,42,46,54,65 | Sort -Descending
$Delimiter = ','
$dat = $content | % {
$line = $_
$columns | % {
$line = $line.Insert($_, $Delimiter)
}
$line -replace '\s'
} |
ConvertFrom-Csv -Delimiter $Delimiter
接着:
foreach($proc in $dat) {
$proc.STATE
$proc.ID # Will show the relevant Data
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.