2011-07-08 138 views
0

我想獲得一個腳本來獲取通過管道連接的服務器列表,其中特定用戶的會話斷開連接,我有這樣的想法,有人可以幫我解決。獲取用戶會話斷開連接的服務器名稱

# 

#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

相關問題