Question
Rechercher si un poster est verouillé
- MARTINEZ
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 13 ans 3 semaines #14071
par MARTINEZ
Rechercher si un poster est verouillé a été créé 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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 3 semaines #14074
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Rechercher si un poster est verouillé
Salut,
patmarti écrit:
patmarti écrit:
patmarti écrit:
Utiliser le remoting ?Qui me donne les informations mais le problème et que cela ne marche qu'en local.
patmarti écrit:
Mauvaise info, la dernière est la 3.0, utilise $pSversiontable.PSversion pour connaître ta version.Je suis en powershell
Version : 3.5.0.2293
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 3 semaines #14084
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Rechercher si un poster est verouillé
Bonjour,
patmarti écrit:
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
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.
- MARTINEZ
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 13 ans 3 semaines #14091
par MARTINEZ
Réponse de MARTINEZ sur le sujet Re:Rechercher si un poster est verouillé
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 \"Host offline\" -ForegroundColor Red -BackgroundColor DarkRed
}
Switch ($Event.ID)
{
# User logged off'
'4647'
{
$Status = \"Logged_Off\"
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[1].value
$Domain = ($Event.Properties)[2].value
}
# Workstation is unlocked.
'4648'
{
$Status = \"Unlocked\"
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[5].value
$Domain = ($Event.Properties)[6].value
}
# Workstation is locked.
'4800'
{
$Status = \"Locked\"
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[1].value
$Domain = ($Event.Properties)[2].value
}
# If no Event Returned
Default
{
$Status = \"No_Data__Client my be offline.\"
$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 \"Status\" -Value $Status
$Obj | Add-Member -MemberType NoteProperty -Name \"TimeCreated\"-Value $TimeWritten
$Obj | Add-Member -MemberType NoteProperty -Name \"TimeDiff\" -Value $TimeDiff
$Obj | Add-Member -MemberType NoteProperty -Name \"UserName\" -Value $UserName
$Obj | Add-Member -MemberType NoteProperty -Name \"Domain\" -Value $Domain
# Write the object to the pipeline.
Write-Output $Obj
}
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 \"Host offline\" -ForegroundColor Red -BackgroundColor DarkRed
}
Switch ($Event.ID)
{
# User logged off'
'4647'
{
$Status = \"Logged_Off\"
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[1].value
$Domain = ($Event.Properties)[2].value
}
# Workstation is unlocked.
'4648'
{
$Status = \"Unlocked\"
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[5].value
$Domain = ($Event.Properties)[6].value
}
# Workstation is locked.
'4800'
{
$Status = \"Locked\"
$TimeWritten = $Event.TimeCreated
$TimeDiff = (Get-Date) - $Event.TimeCreated
$UserName = ($Event.Properties)[1].value
$Domain = ($Event.Properties)[2].value
}
# If no Event Returned
Default
{
$Status = \"No_Data__Client my be offline.\"
$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 \"Status\" -Value $Status
$Obj | Add-Member -MemberType NoteProperty -Name \"TimeCreated\"-Value $TimeWritten
$Obj | Add-Member -MemberType NoteProperty -Name \"TimeDiff\" -Value $TimeDiff
$Obj | Add-Member -MemberType NoteProperty -Name \"UserName\" -Value $UserName
$Obj | Add-Member -MemberType NoteProperty -Name \"Domain\" -Value $Domain
# Write the object to the pipeline.
Write-Output $Obj
}
Connexion ou Créer un compte pour participer à la conversation.
- MARTINEZ
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 13 ans 3 semaines #14129
par MARTINEZ
Réponse de MARTINEZ sur le sujet Re:Rechercher si un poster est verouillé
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Rechercher si un poster est verouillé