Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

Récupération de l’ensemble des Processus en PowerShell avec leurs ID et propriétaire

 

Ce petit script va vous permettre de récupérer dans une variable un tableau de l’ensemble des process tournant sur le poste avec leurs ID et leurs propriétaire

$process=gwmi win32_process
$array=@()
foreach ($p in $Process)
{
    $temp=new-object psobject
    $temp |add-member -MemberType NoteProperty -name "ProcessName" -Value $p.name
    $temp |add-member -MemberType NoteProperty -name "ProcessID" -Value $p.ProcessID
    $temp |add-member -MemberType NoteProperty -name "User" -Value $p.getowner().user
    $array+=$temp
}

Exemple :

image

Ainsi, pour killer des processus, vous pouvez maintenant ajouter la contrainte par identification du propriétaire du Processus.

Exemple :

Nous allons killer les process Spotify de l’utilisateur ato

 

Tout d’abord on récupère les Processus respectant cette contrainte dans notre variable:

$array |? {$_.processname -eq "Spotify.exe" -and $_.user -eq "ato"}

image

 

Et ensuite, on les Kill grâce à leurs identifiants :

$array |? {$_.processname -eq "Spotify.exe" -and $_.user -eq "ato"} |%{stop-process -Id $_.processID}

Résultat : Plus de musique Sourire  (les processus Spotify de l’utilisateur ato ont été arrêtés).

Récupération en PowerShell du propriétaire d’un processus.

 

Il peut être utile de disposer du nom d’utilisateur qui exécute un Processus.

Exemple en GUI :

image

 

Cependant en PowerShell, à l’aide de la commande Get-Process, nous ne disposons pas des utilisateurs.

Exemple en PS :

image

 

Il existe différente méthodes pour voir les processus sous PS.

Nous allons maintenant utiliser un appel wmi pour afficher les processus via la commande :

gwmi win32_process

Exemple :

image

 

En utilisant l’appel wmi, nous avons une propriété nous permettant de connaitre l’utilisateur propriétaire du processus que nous n’avons pas via la commande get-process

image

 

Exemple de récupération du propriétaire du processus Spotify à l’aide de la propriétée getowner :

(gwmi win32_process |? {$_.name -match "spotify"} |select -index 0).getowner().user

image

Nous avons maintenant récupéré le propriétaire du processus.

SQL Server – Récupérer les droits sysadmin après la perte du mot de passe du compte SA

Contexte

Le post suivant explique comment récupérer des droits sysadmin sur un serveur de base de données suite à la perte du mot de passe du compte SA.

Afin de réaliser cette procédure il faut :

  • Un compte administrateur local,
  • Planifier un créneau d’interruption durant la récupération des droits SA.

Récupération des droits sysadmin

1. Démarrer l’instance SQL en “single user mode” (ou monouser) avec la commande suivante depuis le répertoire “C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn” :

SQLServr.Exe –m

 

Il est également possible d’exécuter l’opération avec l’instance démarrées en “minimal configuration” avec le switch –f.

2. Une fois la base de données démarrée en mode “single user” il est possible d’utiliser l’outil SQLCMD pour récupérer les droits sysadmin, exécuter la commande suivante :

SQLCMD –S <NOMSERVEUR\NOMINSTANCE>

 

3.Une fois connecté depuis SQLCMD, il faut créer un nouvel utilisateur (User1 dans l’exemple suivant) à qui affecter les droits sysadmin à l’aide des commandes suivantes :

1. CREATE LOGIN ‘User1’ with PASSWORD=’Password’
2. GO
3. SP_ADDSRVROLEMEMBER ‘User1′,’SYSADMIN’
4. GO

4. Redémarrer l’instance SQL (avec la commande SQLServr.Exe) puis se connecter avec le login User1 afin de modifier le mot de passe du compte SA.