自定义powershell模块

平常使用Powershell变成多数与域控相关,每次写脚本都会用到许多相同的函数和方法,为了提高效率,我把使用频率较高的系统函数重新定义为ps模块,例如一些查询用户是否存在,是否被启用,过期时间等等,在其他脚本里就可以直接调用模块里面的方法

Import-module activedirectory
function exist($accountname)
{
    Get-ADUser -Identity $accountname >> $null
    Return $?
}

function check_user_enable($accountname)
{
    $status=$(Get-ADUser -Identity $accountname -Properties AccountExpirationDate).Enabled
    if($status -ieq 'True')
    {
        Return "True"
    }
    else
    {
        Return "False"
    }
}

function check_user_date($accountname)
{
    $day = Get-ADUser -Identity $accountname -Properties AccountExpirationDate
    if($day.AccountExpirationDate -eq $null)
    {
        $day.AccountExpirationDate=(get-date).adddays(1)
    }
    $value = New-timespan $(get-date) $day.AccountExpirationDate    
    if($value -gt 0)
    {
         Return "True"
         Write-host "用户"+ $accountname +"未过期!" -ForegroundColor Green
    }
    if($vaule -lt 0)
    {
         Return "False"
         Write-host "用户"+ $accountname +"已过期!" -ForegroundColor Red
    }
}

function enable_user($accountname)
{
    Enable-ADAccount -identity $accountname
    Write-host "用户 $accountname 已经修改为启动状态" -ForegroundColor Green
}

function extend_date($accountname,$addmonth)
{
    $newday = (get-date).addmonths($addmonth).tostring("yyyy/MM/dd")
    Set-ADAccountExpiration -identity $accountname $newday
    Write-host "用户 $accountname 已经延长过期时间至 $newday " -ForegroundColor Green
}

保存为 def.ps1文件,在同目录中的其他脚本需要调用时
在开头直接执行 . .\’def.ps1’ 即导入模块
在下一篇博文会有一个应用例子

你可能感兴趣的:(powershell)