2011-07-08 4 views
0

特定のユーザーのセッションが切断されたパイプライン経由でサーバーのリストを取得するためのスクリプトを入手したいと思っています。ユーザーのセッションが切断されたServerNamesを取得する

# 

#function Get-DisconnectedUsers { 

#param(
#[parameter(Mandatory=$true,ValueFromPipeline=$true)] 
#[string]$compnames 
#) 
query session /server:$compnames | where-object{ $_ -notmatch '^ SESSIONNAME' } | foreach-object{ 
$item = "" | Select "Active", "SessionName", "Username", "Id", "State", "Type", "Device" 
$item.Active = $_.Substring(0,1) -match '>' 
$item.SessionName = $_.Substring(1,18).Trim() 
$item.Username = $_.Substring(19,20).Trim() 
$item.Id = $_.Substring(39,9).Trim() 
$item.State = $_.Substring(48,8).Trim() 
$item.Type = $_.Substring(56,12).Trim() 
$item.Device = $_.Substring(68).Trim() 

#$sessions | ?{ $_.State -eq 'Disc' } 
#} 
#} 



#$ErrorActionPreference = "silentlycontinue" 
#Get-VM -VMMServer scvmm01.org |select-object vmhost,ComputerNameString | 
    #Get-DisconnectedUsers -compnames $_.vmhost | Select-Object active,username,state, | 
    #Select-Object @{Name='ServerName';Expression={$_.vmhost}},@ #{Name='Username';Expression={$username}},@{Name='State';Expression={$state}} 

#| where-Object{$_.user -eq "vinith"} 

いくつかのいずれかは、本変形&作業を取得するために私を助けてもらえます。

答えて

1

PSTerminalServices PowerShellモジュール(http://psterminalservices.codeplex.com/)をお試しください。以下は、管理者アカウントにファイル内のいずれかのサーバーでセッションが切断されているかどうかを示しています。

Import-Module PSTerminalServices 

Get-Content servers.txt | Foreach-Object { 
    Get-TSSession -ComputerName $_ -UserName administrator -State Disconnected 
}: 
+1

ありがとうございました@Shay Levyあなたはすばらしいです!私はいつもあなたがすべての答えを持っていると感じています。 – PowerShell

関連する問題