Skip to content

Instantly share code, notes, and snippets.

View mikeplate's full-sized avatar

Mikael Plate mikeplate

View GitHub Profile
@mikeplate
mikeplate / ExportPageWebParts.ps1
Created May 11, 2016 11:35
SharePoint - Export all web parts on a single web page
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
function EnsureDirectory($exportFolderPath) {
if ( -not (Test-Path $exportFolderPath) ) {New-Item $exportFolderPath -Type Directory | Out-Null}
}
function ExportAllWebParts($siteUrl,$pageUrl,$exportFolderPath)
{
$web = Get-SPWeb $siteUrl
$wpm = $web.GetLimitedWebPartManager($pageUrl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
@mikeplate
mikeplate / DeleteDuplicates.sql
Last active November 23, 2017 06:05
Remove duplicates of a row and only keep one of them
WITH cte AS (
SELECT [Col1], [Col2],
row_number() OVER(PARTITION BY Col1, Col2 ORDER BY ColByWhichFirstInOrderIsRemoved) AS [rn]
FROM [TableName]
)
DELETE cte WHERE [rn] > 1
@mikeplate
mikeplate / sphelpers.js
Created March 4, 2016 10:12
SharePoint 2013 REST API JavaScript Snippets / Bookmarklets
// Assuming jQuery is loaded:
// Dump all lists in web site
$.ajax({url:"/_api/web/lists?$expand=defaultView",headers:{"Accept":"application/json;odata=verbose"},success:function(r){r.d.results.forEach(function(l){console.log(l.Id+"|"+l.Title+"|"+l.DefaultView.ServerRelativeUrl);});}})
@mikeplate
mikeplate / ad-powershell.ps1
Last active March 31, 2016 11:33
Active Directory PowerShell Commands
# Show group memberships for specified user
Get-WmiObject -Query "ASSOCIATORS OF {Win32_Account.Name='mikpla',Domain='CONTOSO'} WHERE ResultRole=GroupComponent ResultClass=Win32_Account" | select Name
# Show creation date for a specified user
Get-ADUser -Identity mikeplate -Properties WhenCreated
@mikeplate
mikeplate / Backup7z.ps1
Created July 26, 2015 12:16
Create zip files with changed files for subfolders using 7-zip
$sourcePath = 'C:\Code\Projects'
$destinationPath = 'I:\Backup'
$zipExe = 'C:\Program Files\7-Zip\7z.exe'
function GetLastWriteTime {
$last = (Get-Date).AddYears(-100)
foreach ($file in Get-ChildItem -Recurse $args[0]) {
if ($file.LastWriteTime -gt $last) {
$last = $file.LastWriteTime
}
@mikeplate
mikeplate / QSequence.js
Created July 26, 2015 07:39
Execute Angular q service tasks in sequence
function QSequence($q) {
var _callbacks = [];
var _preCallbacks = [];
var _current = 0;
var _data = {};
function dispatch(deferred) {
var callback = _callbacks[_current];
for (var i = 0; i < _preCallbacks.length; i++) {
_preCallbacks[i](_data, callback.name);
@mikeplate
mikeplate / kill_all.sql
Created July 21, 2015 14:04
Kill all connections to database
USE master
GO
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), spid) + ';'
FROM master..sysprocesses
WHERE dbid = db_id('MyDB')
EXEC(@kill);
@mikeplate
mikeplate / db_owner_all.sql
Last active October 18, 2018 10:25
Set an existing user as db_owner in all databases
declare @username varchar(256)
set @username = 'flowchart'
declare @name varchar(256)
declare db_cursor cursor for
select name from master.dbo.sysdatabases where name not in ('master','model','msdb','tempdb')
open db_cursor fetch next from db_cursor into @name
while @@fetch_status = 0
begin
@mikeplate
mikeplate / restore_all.sql
Created September 3, 2014 06:52
Restore all backup files in folder
declare @path nvarchar(256)
declare @files table (subdirectory nvarchar(256), depth int, [file] int)
declare @sourcepath nvarchar(256)
set @sourcepath = 'C:\Code\AutoFlow\Installed\Databases'
-- Determine default data path
select @path = SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
from master.sys.master_files
where database_id = 1 AND file_id = 1
@mikeplate
mikeplate / search-sp-text.sql
Created August 29, 2014 12:22
Search all stored procedures for text
SELECT OBJECT_NAME(id)
FROM SYSCOMMENTS
WHERE [text] LIKE '%Foo%'
AND OBJECTPROPERTY(id, 'IsProcedure') = 1
GROUP BY OBJECT_NAME(id)