Получить ServerNames, где сеанс пользователя отключен - PullRequest
0 голосов
/ 08 июля 2011

Я хотел получить сценарий для получения списка серверов, поданных через конвейер, где сеанс конкретного пользователя отключен, я получил что-то вроде этого, может кто-нибудь, пожалуйста, помогите мне.

#

#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 Ответ

1 голос
/ 10 июля 2011

Попробуйте модуль PowerShell PSTerminalServices (http://psterminalservices.codeplex.com/).. Далее будет показано, есть ли у учетной записи администратора отключенный сеанс на каком-либо из серверов в файле.

Import-Module PSTerminalServices

Get-Content servers.txt | Foreach-Object { 
    Get-TSSession -ComputerName $_ -UserName administrator -State Disconnected
}:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...