Powershell Snippets

First/End of Month Date calculations

$dNow = get-date 
$dNowMonth = $dNow.Month 
$dNowYear = $dNow.Year 
#Use for beginning of month datetime search, first day at 00 am 
$firstDayOfMonth = get-date "$dNowMonth/1/$dNowYear" 
#Use for end of month datetime search, first day of next month at 00 am 
$lastDayOfMonth = $firstDayOfMonth.AddMonths(1) 
#Use this end of month search when you do not need the time value 
$ReallastDayOfMonth = $lastDayOfMonth.AddDays(-1) 
write-host "FirstDay = $firstDayOfMonth LastDay = $lastDayOfMonth RealLastDayOfMonth = $ReallastDayOfMonth" 

Create alias if does not exist

if ( -not (get-alias zip -ErrorAction SilentlyContinue)) 
    {new-item -path alias:zip -value "C:\Program Files\7-Zip\7z.exe"} 

Map the network drive if it does not exist( with “filesystem” fix for Test-Path on a network drive).

$drive = "H:" 
$remotedir = "\\myserver\SYSBACKUPS" 
$localdir = "F:\SYSBACKUPS\" 
$filesel = "sql_db_" + (get-Date -uformat "%Y%m%d") + ".7z" 
if (-not(Test-Path ($localdir+$filesel))) 
    #We do not have the backup file so lets see if network drive is mapped 
    if (-not (Test-Path -path "filesystem::H:\")) 
        $net = new-object -ComObject WScript.Network
        $net.MapNetworkDrive($drive, $remotedir, $false, "username", "password")
#... Insert rest of the code here