2024-06-11 18:27:55 +00:00
|
|
|
|
function Get-SHSUser {
|
|
|
|
|
|
|
|
|
|
|
|
param (
|
|
|
|
|
|
[parameter(ValueFromPipeline)]
|
|
|
|
|
|
[string]$user
|
|
|
|
|
|
)
|
|
|
|
|
|
if($null -eq (get-module -ListAvailable -Name 'ActiveDirectory')){
|
|
|
|
|
|
Write-Warning 'Active Drirectory Thick Client is required for this function'
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
if($user -match "^[\d\.]+$"){
|
|
|
|
|
|
$UserInfo = Get-ADUser -Filter { EmployeeID -eq $user } -properties *
|
|
|
|
|
|
$user = $UserInfo.SamAccountName
|
|
|
|
|
|
}
|
|
|
|
|
|
if($user -match "\w \w"){
|
|
|
|
|
|
$UserInfo = Get-ADUser -Filter { DisplayName -eq $user } -Properties *
|
|
|
|
|
|
$user = $UserInfo.SamAccountName
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
$UserInfo = Get-ADUser -Identity $user -Properties *
|
|
|
|
|
|
}
|
|
|
|
|
|
if($null -eq $UserInfo){
|
|
|
|
|
|
$props = [ordered]@{
|
|
|
|
|
|
Name="User does not exist in AD"
|
|
|
|
|
|
UserName=$null
|
|
|
|
|
|
EmployeeID=$null
|
|
|
|
|
|
Title=$null
|
|
|
|
|
|
Department=$null
|
|
|
|
|
|
Manager=$null
|
|
|
|
|
|
Phone=$null
|
|
|
|
|
|
Email=$null
|
|
|
|
|
|
Computers=$null
|
2024-06-12 17:15:02 +00:00
|
|
|
|
LastLogon=$null
|
2024-06-11 18:27:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
$obj = New-Object -TypeName PSObject -Property $props
|
|
|
|
|
|
|
|
|
|
|
|
return $obj
|
|
|
|
|
|
}
|
|
|
|
|
|
$manager = $UserInfo.Manager.Split("=,")[1]
|
|
|
|
|
|
|
|
|
|
|
|
$SiteName="100"
|
|
|
|
|
|
|
|
|
|
|
|
$SCCMServer="shscm01.int.samhealth.net"
|
|
|
|
|
|
|
|
|
|
|
|
$SCCMNameSpace="root\sms\site_100"
|
|
|
|
|
|
|
|
|
|
|
|
$SCCMUserQuery = "select distinct SMS_R_System.Name from SMS_R_System where SMS_R_System.LastLogonUserName = '$user'"
|
|
|
|
|
|
|
|
|
|
|
|
$computerSCCM = Get-WmiObject -namespace $SCCMNameSpace -DirectRead -computer $SCCMServer -query $SCCMUserQuery | Select-Object -ExpandProperty Name
|
|
|
|
|
|
$computerList = $computerSCCM -join ", "
|
|
|
|
|
|
$props = [ordered]@{
|
|
|
|
|
|
Name=$UserInfo.DisplayName
|
|
|
|
|
|
UserName=$user
|
|
|
|
|
|
EmployeeID=$UserInfo.EmployeeID
|
|
|
|
|
|
Title=$UserInfo.Title
|
|
|
|
|
|
Department=$UserInfo.Department
|
|
|
|
|
|
Manager=$manager
|
|
|
|
|
|
Phone=$UserInfo.telephoneNumber
|
|
|
|
|
|
Email=$UserInfo.EmailAddress
|
|
|
|
|
|
Computers=$computerList
|
2024-06-12 17:15:02 +00:00
|
|
|
|
LastLogon=$UserInfo.LastLogonDate
|
2024-06-11 18:27:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$obj = New-Object -TypeName PSObject -Property $props
|
|
|
|
|
|
|
|
|
|
|
|
return $obj
|
|
|
|
|
|
}
|