Posts

Showing posts from 2018

Get-LoggedinUser and Get-LoggedInUserSID

Gets the username or user SID of a local or remote computer.

Function Get-LoggedInUser {
<#
.SYNOPSIS
Gets logged in user on local or remote computers.

.NOTES
    Author:  Curtis Wright
    Email:   curtis (at) cwew.co
    Date:    05FEB2018
    PSVer:   2.0/3.0/4.0/5.0

#>
#Allowing Cmdlet Bindings
[CmdletBinding(SupportsShouldProcess=$true)]
Param(
$Computer = $env:COMPUTERNAME,
$domain = $env:userdomain
)
Write-Verbose "Computer is $Computer and domain is $domain"
#Getting the current Error Action Preference so the script can set it back after completion.
$CurrentEA = $ErrorActionPreference
Write-Verbose "Current Error action is $CurrentEA"
$ErrorActionPreference = "SilentlyContinue"
Write-verbose "Attempting to use WMI to get currently logged in user"
$ActiveProcesses = Get-WMIObject win32_process -filter 'name="explorer.exe"' -ComputerName $Computer
if (($ActiveProcesses.GetType().basetype.name) -eq "Array")

Get-OfficeVersion

PowerShell function that gets the currently installed office version and returns either the year, the office folder, the registry location, or the number.

Updated 4/25/18 to support 64 bit office. Bitness is now a returnable Value Type.


Function Get-OfficeVersion {
#Allowing Cmdlet Bindings
[CmdletBinding(SupportsShouldProcess=$true)]
param(
  [Parameter(Position=0,Mandatory=$true)]
  [Alias("Value","VT")]
  [ValidateSet("Office Year", "Office Folder", "Registry Location","Registry Number","Bitness")]
  [string]$ValueTypeReturn,
    [Parameter(Position=1,Mandatory=$false)]
  [Alias("Computer","CN")]
  [string]$ComputerName = $env:COMPUTERNAME
)
Write-Verbose "Testing connection to $ComputerName"
if(Test-Connection -Quiet $ComputerName -Count 1){
Write-Verbose "Connection Successful to $ComputerName"
Write-Verbose "Detecting software for $ComputerName"
    if ((Test-p…

Outlook VBA Macros for Journal Entries

I recently discovered how amazing the Journal function is in Outlook. Primarily, it's great because it has a timer on it that you can use to track your time. It also allows you to categorize each Journal Entry with a type, as well as the categories already in Outlook. I like using this for if someone calls me, there's an entry type for "Phone Call". I'll record what the conversation was about. It automatically creates a new entry at the day and time you create it.

If I'm working on a script, there's a Entry Type for "Scripting". I'll record notes on what I'm working on, and my findings/issues I run into. If I'm doing a task, there's one for "Task".

All of these are great but I wanted to add a little more automation to it all. I didn't like that I couldn't easily start a new Journal Entry from the E-Mail Home Screen. I had to open the Journal, create a new Entry and then start the timer. Too much to do when someo…