假如说我们要写个powershell脚本,功能是找出禁用的账号,找出过期的账号,找出密码永不过期的账号,则可以运行以下三条语句即可。
Search-ADAccount -AccountDisabled | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\01-DisabledAccounts.csv -NoTypeInformation
Search-ADAccount -AccountExpired | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\02-ExpiredAccounts.csv -NoTypeInformation
Search-ADAccount -PasswordNeverExpires | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\03-PsswdNeverExpireAccounts.csv -NoTypeInformation
如果改成workflow脚本,则可以写成如下:
workflow get-ADReport {
parallel {
Search-ADAccount -AccountDisabled | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\01-DisabledAccounts.csv -NoTypeInformation
Search-ADAccount -AccountExpired | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\02-ExpiredAccounts.csv -NoTypeInformation
Search-ADAccount -PasswordNeverExpires | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\03-PsswdNeverExpireAccounts.csv -NoTypeInformation
}
}
还可以改成这样的
workflow get-ADReport {
workflow get-disabled {
Search-ADAccount -AccountDisabled | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\01-DisabledAccounts.csv -NoTypeInformation
}
workflow get-expired {
Search-ADAccount -AccountExpired | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\02-ExpiredAccounts.csv -NoTypeInformation
}
workflow get-passwordneverexpire {
Search-ADAccount -PasswordNeverExpires | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\03-PsswdNeverExpireAccounts.csv -NoTypeInformation
}
parallel {
get-disabled
get-expired
get-passwordneverexpire
}
}
再或者,将它们单独放置,改成以下模式也是可以的
workflow get-disabled {
Search-ADAccount -AccountDisabled | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\01-DisabledAccounts.csv -NoTypeInformation
}
workflow get-expired {
Search-ADAccount -AccountExpired | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\02-ExpiredAccounts.csv -NoTypeInformation
}
workflow get-passwordneverexpire {
Search-ADAccount -PasswordNeverExpires | Select-Object -Property DistinguishedName | Export-Csv -Path c:\workflow\03-PsswdNeverExpireAccounts.csv -NoTypeInformation
}
workflow get-ADReport {
parallel {
get-disabled
get-expired
get-passwordneverexpire
}
}