$localuser = foreach ($localusers in Get-LocalUser) {
$props = @{
'Name' = $localusers.Name;
'Enabled' = $localusers.Enabled;
'FullName' = $localusers.FullName;
'PasswordRequired' = $localusers.PasswordRequired;
'UserMayChangePassword' = $localusers.UserMayChangePassword;
'PasswordChangeableDate' = $localusers.PasswordChangeableDate ;
'PasswordExpires' = $localusers.PasswordExpires;
'PasswordLastSet' = if ($null -eq $localusers.PasswordLastSet) { " " }else { $localusers.PasswordLastSet.toString() };
'LastLogon' = if ($null -eq $localusers.LastLogon) { " " } else { $localusers.LastLogon.toString() };
'Groups' = (([ADSI]"WinNT://$env:COMPUTERNAME").Children | Where-Object { $_.SchemaClassName -eq 'user' } | Foreach-Object {
$groups = $_.Groups() | Foreach-Object { $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null) }
$_ | Select-Object @{n = 'UserName'; e = { $_.Name } }, @{n = 'Groups'; e = { $groups -join ';' } }
} | Select-string $localusers.Name).ToString().Split(" ")[1].Split("=")[1].TrimEnd("}");
'SID' = $localusers.SID.Value;
'SIDBinaryLength' = $localusers.SID.BinaryLength;
'Description' = $localusers.Description;
'hostname' = [Environment]::MachineName
}
New-Object -TypeName PSObject -Property $props
}
$localuser | Select-Object hostname, Name, Enabled, FullName, Description, Groups , PasswordRequired, UserMayChangePassword,
error code:
You cannot call a method on a null-valued expression.
Location Line: 11 Characters: 100
+ ... alusers.LastLogon) { " " } else { $localusers.LastLogon.toString() };
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [],RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull