Question Rechercher si un poster est verouillé

Plus d'informations
il y a 13 ans 3 semaines #14071 par MARTINEZ
Bonjour,
Avec le passage des postes en seven, nous souhaiterions utiliser un outil de prise de main different suivant les os.
Problème est que celui de XP casse la session si la session et verouillé.
Pouvez vous m'aider à trouver une solution pour trouver l'information sur les postes distants pour savoir si le poste et verouillé.

J'avais trouver cela qui me donner les information
$signature = @”
[DllImport(\"user32.dll\", SetLastError = true)]
public static extern bool LockWorkStation();
“@

$LockWorkStation = Add-Type -memberDefinition $signature -name “Win32LockWorkStation” -namespace Win32Functions -passthru
$LockWorkStation

Qui me donne les informations mais le problème et que cela ne marche qu'en local.

Si j'utilise :
if(!(get-module taskscheduler)){Import-Module TaskScheduler}
New-task -ComputerName $Computername -credential:$Credential |
Add-TaskTrigger -In (New-TimeSpan -Seconds 30) | Add-TaskAction -Script `
{
Mon poste me dit que New-task n'est pas reconnu.
Je suis en powershell
Version : 3.5.0.2293
Avez-vous une idée?
Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14074 par Laurent Dardenne
Salut,
patmarti écrit:

Qui me donne les informations mais le problème et que cela ne marche qu'en local.

Utiliser le remoting ?
patmarti écrit:

Je suis en powershell
Version : 3.5.0.2293

Mauvaise info, la dernière est la 3.0, utilise $pSversiontable.PSversion pour connaître ta version.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14084 par Matthew BETTON
Bonjour,

patmarti écrit:

Bonjour,
Problème est que celui de XP casse la session si la session et verouillé.


Il existe 2 moyens de \"prendre la main\" sur un poste de travail Windows XP. Le bureau à distance et l'assistance à distance.

Comme \"une seule session à la fois\" est autorisée sur un Windows XP (ce n'est évidemment pas un serveur et encore moins un serveur TSE) il s'agit de la session console.

Dans le cas de l'assistance à distance, l'utilisateur doit être présent pour valider la prise de main puis le contrôle clavier / souris (donc 2 validations nécessaires). Dans ce cas, l'utilisateur et l'intervernant accèdent en même temps au même bureau : celui de l'utilisateur.
C'est cette partie qui est la plus utilisée en entreprise : en général, il n'est pas autorisé de prendre la main sur un poste de travail sans que son utilisateur n'en soit informé, voire même, ne soit présent...

Bref, pour observer à distance qui est connecté sur le poste de travail voir ici .

Une idée, pour savoir si une session est vérouillée pour cet utilisateur sur la machine concernée : regarder si le process qui correspond à l'écran de veille est en cours d'exécution : 'logon.scr' ou '*.scr' :)

@ +

Matthew<br><br>Message édité par: Matthew BETTON, à: 26/02/13 12:12

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14091 par MARTINEZ
Voici la fonction que j'ai réussi a trouver pour faire mon test, cela fonctione trés bien.
Je le donne au cas ou quelqu'un cherché comme moi.
Ca peut toujours servir.
Merci pour votre implication

Function Test-LockedClient{
Param (
[cmdletbinding()]
[Parameter(Mandatory=$True)]$ComputerName,
[int]$DaysToSearch = 14
)
$StartTime = (Get-Date).AddDays(-($DaysToSearch))
$LogHash = @{LogName = 'Security';StartTime = $StartTime; ID=4647,4648,4800,4801}
Try
{
$Event = Get-WinEvent -FilterHashtable $LogHash -ComputerName $ComputerName -ea Stop |
Sort-Object -Property TimeCreated -Descending |
Select -First 1
}
Catch
{
Write-Host \&quot;Host offline\&quot; -ForegroundColor Red -BackgroundColor DarkRed
}
Switch ($Event.ID)
{
# User logged off'
'4647'
{
$Status = \&quot;Logged_Off\&quot;
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[1].value
$Domain = ($Event.Properties)[2].value
}
# Workstation is unlocked.
'4648'
{
$Status = \&quot;Unlocked\&quot;
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[5].value
$Domain = ($Event.Properties)[6].value
}
# Workstation is locked.
'4800'
{
$Status = \&quot;Locked\&quot;
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[1].value
$Domain = ($Event.Properties)[2].value
}
# If no Event Returned
Default
{
$Status = \&quot;No_Data__Client my be offline.\&quot;
$TimeWritten = $Null
$TimeDiff = $NULL
}
}
# Create Object to hold the output.
$Obj = New-Object PSObject
# Add member data to the object.
$Obj | Add-Member -MemberType NoteProperty -Name \&quot;Status\&quot; -Value $Status
$Obj | Add-Member -MemberType NoteProperty -Name \&quot;TimeCreated\&quot;-Value $TimeWritten
$Obj | Add-Member -MemberType NoteProperty -Name \&quot;TimeDiff\&quot; -Value $TimeDiff
$Obj | Add-Member -MemberType NoteProperty -Name \&quot;UserName\&quot; -Value $UserName
$Obj | Add-Member -MemberType NoteProperty -Name \&quot;Domain\&quot; -Value $Domain
# Write the object to the pipeline.
Write-Output $Obj
}

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14129 par MARTINEZ
Petit oups ne fonctionne pas sur XP ou 2003

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.040 secondes
Propulsé par Kunena