【发布时间】:2019-08-28 05:56:30
【问题描述】:
我正在尝试确定 CSV 中的用户是否处于活动状态,此外,我想知道他们是基于 OU 的服务帐户、用户帐户还是机器帐户。
一切都在膨胀,直到我尝试输出它......输出在多行(每个 var 一个)。
我希望输出在一行上(中间有逗号,所以我完成后会有一个 CSV)...我已经尝试了这 20 种不同的方法,得到了 40 种不同的结果 O_o。
奖励:为任何产生错误的名称添加一条消息(即用户不存在......)我正在考虑一个 if/else,但无法获得基本输出的行为。
我试过用括号括起来、连接变量、嵌套变量……用棍子敲打我的电脑……静静地思考我的人生选择……
$Users = Get-Content C:\ActiveUsers.txt
ForEach ($User in $Users){
$properties = Get-ADUser -Identity $User | select SamAccountName,Enabled,DistinguishedName
if (Select-String -Pattern "UserMgt" -InputObject $properties) { $base = "User" }
if (Select-String -Pattern "ApplSec" -InputObject $properties) { $base = "Service Account" }
if (Select-String -Pattern "WkstnMgt" -InputObject $properties) { $base = "Machine Account" }
write-output $properties.SamAccountName $properties.Enabled $base
#$Output = Write-Output $properties.SamAccountName $properties.Enabled $base
#$Output #| out-file C:\UserStatus-OU2.csv -append
}
【问题讨论】:
-
也许here 会有所帮助
标签: powershell scripting