Question Verifier si la console est lancer en Admin
- Richard Lazaro
- Auteur du sujet
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 8 mois #7348
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Verifier si la console est lancer en Admin a été créé par Richard Lazaro
Bonjour à tous,
Je ne sais pas si un script du genre à déjà été publié mais voilà.
Pour un projet, j'ai besoin de savoir si la console est lancé en tant qu'administrateur.
Pour cela j'ai créé cette petite fonction (compatible 1.0 et 2.0) :
[code:1]function Test-AdminElevation {
$windowsIde = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$windowsUse = New-Object System.Security.Principal.WindowsPrincipal($windowsIde)
$windowsAdm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
$IsAdmin = $windowsUse.IsInRole($windowsAdm)
if ( $IsAdmin ) {
$result = $true
} else {
$result = $false
}
return $result
}[/code:1]
Example d'utilisation, tout simple :
[code:1]C:\PS>Test-AdminElevation
True[/code:1]
Voilà, j'espère que cela vous sera utile ;]
Bien Cordialement,
Richard Lazaro.<br><br>Message édité par: Richard Lazaro, à: 8/07/10 16:05
Je ne sais pas si un script du genre à déjà été publié mais voilà.
Pour un projet, j'ai besoin de savoir si la console est lancé en tant qu'administrateur.
Pour cela j'ai créé cette petite fonction (compatible 1.0 et 2.0) :
[code:1]function Test-AdminElevation {
$windowsIde = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$windowsUse = New-Object System.Security.Principal.WindowsPrincipal($windowsIde)
$windowsAdm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
$IsAdmin = $windowsUse.IsInRole($windowsAdm)
if ( $IsAdmin ) {
$result = $true
} else {
$result = $false
}
return $result
}[/code:1]
Example d'utilisation, tout simple :
[code:1]C:\PS>Test-AdminElevation
True[/code:1]
Voilà, j'espère que cela vous sera utile ;]
Bien Cordialement,
Richard Lazaro.<br><br>Message édité par: Richard Lazaro, à: 8/07/10 16:05
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
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 15 ans 8 mois #7353
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Verifier si la console est lancer en Admin
Tu peux simplifier et ajouter une gestion d'exception, cf. GetCurrent() :
[code:1]
function Test-AdminElevation {
trap {return $false}
$windowsIde = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$windowsUse = New-Object System.Security.Principal.WindowsPrincipal($windowsIde)
return $windowsUse.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
}
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 9/07/10 09:36
[code:1]
function Test-AdminElevation {
trap {return $false}
$windowsIde = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$windowsUse = New-Object System.Security.Principal.WindowsPrincipal($windowsIde)
return $windowsUse.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
}
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 9/07/10 09:36
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Auteur du sujet
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 8 mois #7357
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Verifier si la console est lancer en Admin
Oui, j'ai pensé à la simplification. C'était surtout pour que tout le monde puisse le comprendre sans trop de difficulté ;]
Par contre, j'avais pas pensé à la gestion d'exception ^^
EDIT : Par contre, je ne vois pas de return dans ton code pour la valeur de IsInRole, est ce normal ?<br><br>Message édité par: Richard Lazaro, à: 9/07/10 09:14
Par contre, j'avais pas pensé à la gestion d'exception ^^
EDIT : Par contre, je ne vois pas de return dans ton code pour la valeur de IsInRole, est ce normal ?<br><br>Message édité par: Richard Lazaro, à: 9/07/10 09:14
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
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 15 ans 8 mois #7359
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Verifier si la console est lancer en Admin
Richard Lazaro écrit:
Richard Lazaro écrit:
Richard Lazaro écrit:
J'ai pris l'habitude de lire la doc sur MSDN, j'avais tenté d'automatiser ce contrôle , je devrais le réécrire en V2...Par contre, j'avais pas pensé à la gestion d'exception
Richard Lazaro écrit:
Oui, par défaut PS émet la valeur de retour d'une fonction/méthode dans le pipeline.Par contre, je ne vois pas de return dans ton code pour la valeur de IsInRole, est ce normal ?
Richard Lazaro écrit:
En lisant la doc sur MSDN on le comprend facilement, mais c'est vrai que la présence du Return précise l'intention, tu as raison (je l'ai ajouté).C'était surtout pour que tout le monde puisse le comprendre sans trop de difficulté ;]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Auteur du sujet
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 8 mois #7361
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Verifier si la console est lancer en Admin
Ya un truc qui me chagrine, on m'a toujours dis.
Dans n'importe quel Algo bien fait, il n'y a qu'un seul return !
Ce qui a mon sens me parait logique, on a une entrée et une sortie.
Dans n'importe quel Algo bien fait, il n'y a qu'un seul return !
Ce qui a mon sens me parait logique, on a une entrée et une sortie.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Auteur du sujet
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 8 mois #7362
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Verifier si la console est lancer en Admin
Et puis, si tu veux minimiser, on peut aller à l'extrême aussi 
[code:1]function Test-AdminElevation {
trap{ return $false }
return (New-Object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
}[/code:1]

EDIT : Mais le trap devient surement inutile dans cet écriture ^^<br><br>Message édité par: Richard Lazaro, à: 9/07/10 10:27
[code:1]function Test-AdminElevation {
trap{ return $false }
return (New-Object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
}[/code:1]
EDIT : Mais le trap devient surement inutile dans cet écriture ^^<br><br>Message édité par: Richard Lazaro, à: 9/07/10 10:27
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.049 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- Verifier si la console est lancer en Admin