Professional
I interned at Kindred Healthcare for a year and a half before I was hired on as a full-time employee. Throughout my time here I have learned so many valuable skills that would be invaluable to any company. I have learned, practiced, and become quite familiar with skills such scripting, desktop and application virtualization, and Windows Server. I have also become familiar with other administrative tools such as Active Directory, Group Policy, and Registry Editor. These are simply a snapshot of my skills.
Although I was only an intern at Kindred, throughout my time I took on numerous other responsibilities. I assisted my team in whatever capacity I could. I have assisted in the data center migration of the Gentiva systems to our Louisville datacenter, became part of the regular schedule for compliance updates and patching, was the largest contributor to solving end-user issues in our ticket system, and have written a number of scripts to speed up workflows and help with reporting.
Technical Skills
-
Operating Systems
Windows: Server 2003 – 2016, XP – 10
macOS: Leopard – Sierra, Server
Linux: Ubuntu, Debian, Kali Linux -
Virtual Suite
Proficient in a multitude of virtual administrative tools in both VMware and Citrix.
: vSphere, Horizon View, App Volumes, etc.
: Studio, Director, AppCenter, etc.
-
End-User troubleshooting
5+ years of end-user troubleshooting experience
Great, friendly, and patient customer service oriented personality
-
Scripting
Utilize PowerShell to write numerous scripts to improve daily workflows
PowerShell Snippets
Reset-UserProfile
This is a script that Resets a Kindred user's Citrix profile and fixes any profile permissions.
The steps are as follows:
- Get Kindred Domain ID from first & last name
- End Citrix XenApp and XenDesktop sessions
- Navagate to Citrix Profile Store and rebuild Citrix Profile
- Fix Profile permissions
Below is an example of Ending Citrix XenDesktop Sessions:
Invoke-Command{
$userID = $args[0];
asnp citrix.*;
$session = Get-BrokerSession -UserName PROD\$userID
if ($session.Count -ge 1) {
$session | Stop-BrokerSession -ErrorAction SilentlyContinue
}
else {#do nothing
}
} -computername $brokerServer -ArgumentList $userID
Below is an example of Fixing Profile Permissions:
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ("$userID","FullControl","Allow")
$ACL = (Get-Item $profilePath).GetAccessControl('Access')
$ID = New-Object System.Security.Principal.NTAccount("$userID")
$ACL.SetOwner($ID)
$ACL.SetAccessRule($AccessRule)
Set-ACL -Path $profilePath -AclObject $ACL
ServersNotInWorkerGroups
This is a script that checks to see if a Citrix is in a a workergroup
Below is an exmaple of this workergroup check:
$counter = 0
$servers = Get-XAServer| % {
$assigned = $null
$srv = $_.servername
$workerGroup = Get-XAWorkerGroup -ServerName $srv
foreach ($wkrp in $workerGroup.workergroupname)
{
if ($wkrp -notmatch "Reboot" -and $wkrp -notmatch "CUSTOM" -and $wkrp -notmatch "All Servers")
{
$counter += 0
$assigned = $wkrp
#Write-Host $srv 'is in' $assigned #turn on to see which workergroups server x is in
}
}
if ($assigned -eq $null) #$srv doesnt have workergroup
{
$counter +=1
Write-Host $srv 'is not in any farm'
}
Get-UserDetails
This is more of a helper script that looks up user information in a streamlined way.
The steps are as follows:
- Get Kindred Domain ID from first & last name
- Create IE Object to Google user's local time.
- See if user has any existing Citrix Sessions
Below is an example of creating an IE object and Googling the local time:
$ie = New-Object -ComObject InternetExplorer.Application -ErrorAction Stop
$ie.Visible = $false
$city = $args[0]
$state = $args[1]
$localTime = $args[2]
$googleTime = $args[3]
$ie.Navigate("https://www.google.com/search?q=local+time+in+$city+$state&num=1")
while($ie.Busy) {Start-Sleep -Milliseconds 1}
foreach ($result in $ie.document.getElementbyId("ires")) {
$initialTime = $result.innerText;
}
#remove all google search text except for time
$googleTime = $initialTime.Substring(0,$initialTime.IndexOf("`n"))
Write-Host "Local Time: " $localTime
Write-Host "Time in $city, $state : " $googleTime