Skip to content

Instantly share code, notes, and snippets.

@automationhaus
automationhaus / Set-SPMetaData.ps1
Created December 28, 2016 21:14
Sharepoint Dynamic Metadata Values and List View Threshold Bypass
<#
.SYNOPSIS
Sets the values for the title and metadata fields for the Contoso Customer Production Docs library
.DESCRIPTION
For each item in the library a lookup is performed either against the ERP, the file name or the parent folder names to generate a value for the current field. Possible values are matched against the contents in the term store to confirm the value can be set. The script also picks up where it left off from the last run using the last item id and last results count. Once the script is finished if a new customer folder is found the metadata defaults script, Set-MetaDataDefaults.ps1, is kicked off to set the defaults for that folder.
.NOTES
Britt Thompson
[email protected]
#>
#region ASSEMBLIES, SNAPINS, MODULES
@automationhaus
automationhaus / Get-ServiceAccounts.ps1
Created December 16, 2016 17:21
Remotely collect a CSV and log of all accounts associated with scheduled tasks and services on servers. Useful for when you plan to make changes to old admin passowrds.
function Get-ServiceAccounts
{
<#
.SYNOPSIS
Collect logins for services and scheduled tasks that are likely to be service accounts
.DESCRIPTION
Remotely collect a CSV and log of all accounts associated with scheduled tasks and services on servers. Useful for when you plan to make changes to old admin passowrds.
.PARAMETER ComputerName
String array of computer names to check for service accounts
.PARAMETER CSV
@automationhaus
automationhaus / Get-ServiceAccounts.ps1
Last active January 21, 2017 02:05
Checks each server in the list of given computers for non-System accounts used in services and non-Microsoft scheduled tasks
function Get-ServiceAccounts
{
<#
.SYNOPSIS
Reaches out to the given servers to get service accounts used in services and scheduled tasks
.DESCRIPTION
Checks each server in the list of given computers for non-System accounts used in services and non-Microsoft scheduled tasks
.EXAMPLE
Get-ServiceAccounts -ComputerName "SERVER1","SERVER2" -CSV
.NOTES
@automationhaus
automationhaus / Config.json
Last active December 15, 2016 14:49
Saves and restores client printer default settings based on the locale of the client IP address. For use in logon/logoff scripts with users who float from site to site within an organization.
{
"Locales":{
"Datacenter":"10.11.16",
"Marietta":"10.0.1",
"Atlanta":"10.5.20"
}
}
@automationhaus
automationhaus / Get-RDSCurrentSession.ps1
Last active December 13, 2016 18:00
Function to get the client information for the RDS session running the command - Client Name, IP Address, Session Host, Session ID...
function Get-RDSCurrentSession
{
<#
.SYNOPSIS
Provides information about the current logged in session on the session host
.DESCRIPTION
Using Cassia .NET Library gathers information on the current logged in user/client on the local session host
.EXAMPLE
PS>Get-RDSCurrentSession
.OUTPUTS
@automationhaus
automationhaus / Get-InstalledPrinters.ps1
Last active December 9, 2016 15:50
Uses WMI to pull locally installed printer information for output to CSV or other destination
function Get-InstalledPrinters
{
<#
.SYNOPSIS
Simple function to grab details regarding locally installed printers on servers
.DESCRIPTION
Uses WMI to pull locally installed printer information for output to CSV or other destination
.EXAMPLE
PS>Get-InstalledPrinters "SERVER1","SERVER2","SERVER3" -Unique
.PARAMETER Computers
@automationhaus
automationhaus / Start-ProfileMigration.ps1
Last active December 8, 2016 15:25
Advanced multi source and destination profile migration function
function Start-ProfileMigration
{
<#
.SYNOPSIS
Advanced data migration function using Robocopy
.DESCRIPTION
Using Robocopy and designed for scheduling multiple incremental data migrations to mirror the source with the destination
.PARAMETER Name
Job name string to use in labeling log files and output
.PARAMETER Source
@automationhaus
automationhaus / Start-DataMigration.ps1
Last active November 22, 2016 21:50
Function utilizing Robocopy to mirror data from one location to another
function Start-DataMigration
{
<#
.SYNOPSIS
Simple data migration function using Robocopy
.DESCRIPTION
Using Robocopy and designed for scheduled incremental data migration to mirron the source with the destination
.EXAMPLE
Example of how to use this cmdlet
PS>Start-DataMigration -Name "UserMigration" -Source "\\SERVER1\Share" -Destination "E:\Share" -ExcludeFiles "*.vmdk","*.mp3","*.iso"
@automationhaus
automationhaus / Get-SecurityLogs.ps1
Last active January 21, 2017 02:03
PowerShell function used to collect security events from a list of servers using a start date, end date, username or domain as needed
function Get-SecurityLogs
{
<#
.SYNOPSIS
Pulls security logs from the given list of computers using the given date range
.DESCRIPTION
Using the computername, startdate and enddate parameters you can pull the event logs for the given computers. Once the data is collected to a variable you can alter the output as needed.
.EXAMPLE
PS>Get-SecurityLogs
Collects the security logs for the last day on the local machine
@automationhaus
automationhaus / Get-Catch.ps1
Last active December 13, 2016 18:11
Simple Function to Create your Error Output in a Try Catch
function Get-Catch
{
<#
.SYNOPSIS
Allows you to use a single line of code for your catch
.DESCRIPTION
Creates consistent repeatable error output in your try / catch
.EXAMPLE
try { Get-Process | ?{$_.ProcessName -match "w3wp"} } catch { Get-Catch }
.LINK