Powershell Profile - Time Savers
These are some of the functions I use in my Powershell Profile. Currently, most of the profile I use is specific to my environment. In order to post here, I'm steadily redacting the sensitive information. Additionally, I'm going through and making a configuration file so that environmental settings can all be edited in one place.
For now though, here are a few bits and pieces that I think may be of use to you.
There is a lot of work to be done in standardizing the functions so that they follow my own personal conventions, as well as accept input as a standard parameter.
#Returns the Windows Version
function
Get-WindowsVersion(){
param([string]$ComputerName)
return (Get-WmiObject -ComputerName $ComputerName -Class Win32_OperatingSystem).Caption
}
#Get-User Queries AD for User and saves object to $Global:ttkUser. I use this variable name in my own personal convention. Other functions reference ttkUser when a username or object is expected, but has not been provided.
function
Get-User{
Param([Parameter(Mandatory=$true)][string]$User, [switch]$Extended = $false)
$search = "*"
+ $User + "*"
$Global:ttkUser =
Get-ADUser -filter {DisplayName -like $search -or UserPrincipalName -like $search} -Properties *
$Global:ttkUser | Select SamAccountName,DisplayName, Office,
EmployeeNumber, badgeNumber, Title,
MobilePhone, OfficePhone, DistinguishedName, Created | FL
Write-Host -ForegroundColor Cyan "Saved ADUser to `$Global:ttkUser..."
}
Set-Alias User Get-User
#Get-TTKUser selects the first object from $Global:TTKUser (if present) and sanitizes the data. Get-User is designed to return all matching results, with the first result being the "most likely" candidate.
function
Get-ttkUser{
Write-Host -ForegroundColor Cyan "Selecting First user in ttkUser"
if (!$Global:ttkUser.samaccountname) {
Write-Host -ForegroundColor Red "ttkUser does not contain any users. Run Get-User
first"
return
}
else {
if ($Global:ttkUser.samaccountname[0].gettype().name -eq "Char"){
$UserName = $Global:ttkUser.samaccountname
Write-Host -ForegroundColor Yellow "`$UserName is set to $username"
}
else{
$UserName = $Global:ttkUser.samaccountname[0]
Write-Host -ForegroundColor Yellow "`$UserName is set to $username"
}
return $UserName
}
}
#Get-UserGroups returns a list of the Active Directory Security groups the user is a part of.
function
Get-UserGroups{
$user = Get-ttkUser
$user|
Get-ADPrincipalGroupMembership |
select name
}
Set-Alias Groups
Get-UserGroups
#Get-LockoutTime returns a timestamp of when the user account was locked out. AD stores this attribute as an epoch time.
function
Get-LockoutTime{
[long]$epoch = (get-ttkUser).lockoutTime
return [datetime]::FromFileTime([long]$epoch)
}
#Unlock-User - I think this is pretty self explanatory.
function
Unlock-User{
Unlock-ADAccount -identity (get-ttkUser)
}
Set-Alias Unlock
Unlock-User
No comments:
Post a Comment