分享一段PowerShell用户认证Function

在最近工作中遇到对用户验证,需要根据用户名和密码验证用户是否合法。在这里分享给大家,如果你也需要用户验证的话,那么可以直接copy使用,现在没地方用,也可以收藏备用,分享一段PowerShell用户认证Function


  1. function Test-UserCredential {   
  2.  
  3.      [CmdletBinding()] [OutputType([System.Boolean])]   
  4.  
  5.      param(   
  6.  
  7.          [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()]   
  8.  
  9.          [System.String] $Username,   
  10.  
  11.          [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()]   
  12.  
  13.          [System.String] $Password,   
  14.  
  15.          [Parameter()]   
  16.  
  17.          [Switch] $Domain   
  18.  
  19.      )   
  20.  
  21.      Begin {   
  22.  
  23.          $assembly = [system.reflection.assembly]::LoadWithPartialName('System.DirectoryServices.AccountManagement')   
  24.  
  25.      }   
  26.  
  27.      Process {   
  28.  
  29.          try {   
  30.  
  31.              $system = Get-WmiObject -Class Win32_ComputerSystem   
  32.  
  33.              if ($Domain) {   
  34.  
  35.                  if (0, 2 -contains $system.DomainRole) {   
  36.  
  37.                      throw 'This computer is not a member of a domain.'   
  38.  
  39.                  } else {   
  40.  
  41.                      $principalContext = New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext 'Domain', $system.Domain   
  42.  
  43.                  }   
  44.  
  45.              } else {   
  46.  
  47.                  $principalContext = New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext 'Machine', $env:COMPUTERNAME   
  48.  
  49.              }   
  50.  
  51.              return $principalContext.ValidateCredentials($Username, $Password)   
  52.  
  53.          }   
  54.  
  55.          catch {   
  56.  
  57.              throw 'Failed to test user credentials. The error was: "{0}".' -f $_   
  58.  
  59.          }   
  60.  
  61.      }   
  62.  
  63. }  
  64.  

使用很简单方便:Test-UserCredential  “用户名” “密码” “用户域”,第三个参数“用户域”为可选参数。



 本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/893862,如需转载请自行联系原作者


上一篇:【Qt编程】基于Qt的词典开发系列<十四>自动补全功能


下一篇:SQL Server 2008将数据导出为脚本 [SQL Server]