Monad: Detecting if you are an Admin

One of the LUA tasks I found very frustrating was detecting whether or not I was running as an Admin in a .BAT script.  It's very difficult to do this correctly and the best way I found was to write a separate program that would determine this for me.  This has a couple of limitation, the main one being that it adds extra dependencies to your scripts and makes them harder to deploy. 

Monad has greatly simplified this task as I can do the detection code uses simple scripts. 

# Determine if I am running as an Admin
function AmIAdmin()
{
 $local:ident = [System.Security.Principal.WindowsIdentity]::GetCurrent()
 
 foreach ( $local:groupIdent in $ident.Groups )
 {
  if ( $groupIdent.IsValidTargetType([System.Security.Principal.SecurityIdentifier]) )
  {
   $local:groupSid = $groupIdent.Translate([System.Security.Principal.SecurityIdentifier])
   if ( $groupSid.IsWellKnown("AccountAdministratorSid") -or $groupSid.IsWellKnown("BuiltinAdministratorsSid"))
   {
    return $true;
   }
  }
 }
 
 return $false;
}

I've added this to my profile so now it's really easy to determine if I can complete an action or need to prompt for credentials in my scrips.