Question [RESOLU]Gestion des admins locaux

Plus d'informations
il y a 10 ans 3 mois #21143 par Max
Réponse de Max sur le sujet Re:Gestion des admins locaux
Super ça marche !
Il me reste deux soucis (enfin je crois ...). Il faut que je m'assure que l'utilisateur que je rétrograde ne s'appelle pas \"administrateur\", rien de mortel. Par contre quand j'exécute mon script au logoff mon PC freeze(explorer se coupe et je reste indéfiniment devant le magnifique paysage du fond d'écran). Là c'est plus flou pour moi ... Une idée ?

En tout cas merci pour l'aide mon script fait son job, c'est déjà ça.
[code:1]function Test-Admin
{
$script:wid = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$script:«»prp = New-Object System.Security.Principal.WindowsPrincipal($wid)
$script:adm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
$script:«»prp.IsInRole($adm)
}
function Downgrade-User{
$users = [ADSI]\"WinNT://$env:COMPUTERNAME/utilisateurs,group\"
$users.PSBase.Invoke('Add',\"WinNT://$env:USERNAME\"«»)
$users = [ADSI]\"WinNT://$env:COMPUTERNAME/administrateurs,group\"
$users.PSBase.Invoke('Remove',\"WinNT://$env:USERNAME\"«»)
}

if(Test-Admin){
echo \"your are admin\"
Downgrade-User
}
else{
echo \"Not an admin\"
}[/code:1]

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

Plus d'informations
il y a 10 ans 3 mois #21148 par Max
Réponse de Max sur le sujet Re:Gestion des admins locaux
Voilà mon script est fonctionnel je le poste pour ceux que ça pourrait intéresser.

[code:1]
function Test-Admin
{
$script:wid = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$script:«»prp = New-Object System.Security.Principal.WindowsPrincipal($wid)
$script:adm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
$script:«»prp.IsInRole($adm)
}
function Downgrade-User{
$users = [ADSI]\"WinNT://$env:COMPUTERNAME/utilisateurs,group\"
$users.PSBase.Invoke('Add',\"WinNT://$env:USERNAME\"«»)
$users = [ADSI]\"WinNT://$env:COMPUTERNAME/administrateurs,group\"
$users.PSBase.Invoke('Remove',\"WinNT://$env:USERNAME\"«»)
}
if( ($env:USERNAME -ne \"Administrateur\"«»)){

#echo \"OK\"

if(Test-Admin){
#echo \"your are admin\"
Downgrade-User
}
else{
#echo \"Not an admin\"
}
}
Else{
#echo \"KO\"
}
#Les lignes ci-dessous servent à couper le process powershell au logoff
$sysevent = [microsoft.win32.systemevents]
Register-ObjectEvent -InputObject $sysevent -EventName \"SessionEnding\" -Action {\"Shutdown/Logoff detected.\";Get-Process -Name Powershell | Stop-Process -Force}

[/code:1]

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

Plus d'informations
il y a 10 ans 3 mois #21151 par Philippe
Réponse de Philippe sur le sujet Re:Gestion des admins locaux

Voilà mon script est fonctionnel je le poste pour ceux que ça pourrait intéresser.

merci à toi :)

Par contre quand j'exécute mon script au logoff mon PC freeze(explorer se coupe et je reste indéfiniment devant le magnifique paysage du fond d'écran).

#Les lignes ci-dessous servent à couper le process powershell au logoff
...

et merci pour avoir trouvé cette solution qui pourra servir à d'autre ;)

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

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