Powershell 尝试在成功时写入事件日志,如果出错,则写入另一个事件日志,说明它已失败

Powershell 尝试在成功时写入事件日志,如果出错,则写入另一个事件日志,说明它已失败,powershell,active-directory,Powershell,Active Directory,我尝试使用$true和$false布尔值写入成功和错误事件日志,但它正在写入两个事件日志,尽管成功或错误,我使用$lastextcode尝试了不同的代码变体,但后来意识到它适用于Win32应用程序,而不是PowerShell命令 我不完全确定你在用那些if语句做什么,但我想你可能想要这样的东西: Import-Module ActiveDirectory $Content = Get-Content C:\SMS\sms.txt -TotalCount 1 ForEach ($Payroll

我尝试使用$true和$false布尔值写入成功和错误事件日志,但它正在写入两个事件日志,尽管成功或错误,我使用$lastextcode尝试了不同的代码变体,但后来意识到它适用于Win32应用程序,而不是PowerShell命令

我不完全确定你在用那些
if
语句做什么,但我想你可能想要这样的东西:

Import-Module ActiveDirectory
$Content = Get-Content C:\SMS\sms.txt -TotalCount 1 
ForEach ($Payroll in ($Content )) { 
    Get-ADUser -Identity "$Payroll" -Properties LockedOut | Select-Object LockedOut 

    If ($true) {$true -ne $false} 
    Unlock-ADAccount $Payroll 

    If ($true) {$true -ne $false}
    Write-EventLog -LogName "ADUnlock" -Source ADUnlock -EntryType Information -Message "AD account Successfully unlocked $Payroll" -Category 1 -EventId "12"

    If ($false) {$false -ne $true} 
    Write-EventLog -LogName "ADUnlock" -Source ADUnlock -EntryType Information -Message "AD account Attempted to unlock but failed $Payroll" -Category 1 -EventId "12" 
}

问题是,我不确定锁定输出的类型是什么。我在这里假设一个布尔值。

LockedOut
是一个ADProperty,我试试看。我试图在成功和出错时编写事件日志。
Import-Module ActiveDirectory
$Content = Get-Content C:\SMS\sms.txt -TotalCount 1 
ForEach ($Payroll in ($Content )) { 
    $res = Get-ADUser -Identity "$Payroll" -Properties LockedOut | Select-Object LockedOut 
    If (!res) {continue} 

    Unlock-ADAccount $Payroll
    if ($?) {
        Write-EventLog -LogName "ADUnlock" -Source ADUnlock -EntryType Information -Message "AD account Successfully unlocked $Payroll" -Category 1 -EventId 12
    }
    else {
        Write-EventLog -LogName "ADUnlock" -Source ADUnlock -EntryType Information -Message "AD account Attempted to unlock but failed $Payroll" -Category 1 -EventId 12
    }
}