Skip to content

Instantly share code, notes, and snippets.

Avatar

Daniel Schroeder deadlydog

View GitHub Profile
@deadlydog
deadlydog / SetUserPermissionsOnAllSqlDatabases.sql
Last active Aug 29, 2015
Loop through every SQL Server database on server, create user if they don't exist, and set that user's permissions
View SetUserPermissionsOnAllSqlDatabases.sql
exec master.dbo.sp_foreachdb
'USE ?
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''Domain\UserOrGroup'')
BEGIN
CREATE USER [Domain\UserOrGroup] FROM LOGIN [Domain\UserOrGroup]
END
exec sp_addrolemember ''db_backupoperator'', ''IQMETRIXHO\Development'';
'
GO
@deadlydog
deadlydog / CopySqlDatabase.sql
Last active Aug 29, 2015
Backup and restore (copy) sql database to specific drive based on environment
View CopySqlDatabase.sql
-- This script copies a database. The paths in this script are designed to run on IQ-RGVSQL009.
-- You need to have SQLCMD mode enabled to run this script (Query menu -> SQLCMD Mode).
:setvar DbToBackup "SeedCore" -- The database to copy from.
:setvar DbToRestore "Developer_DanS" -- The database to create/overwrite.
:setvar Environment "" -- Should be either "Test", "Automation", or an empty string (for Dev). Corresponds to the Sql Server Instance the DB is on.
:setvar TruncateDevDatabases "True" -- Leave this as 'True' to not keep full logs for the DbToRestore on the Dev Sql Server Instance.
:setvar PutAutomationDbOnSlowDrive "True" -- Leave this as 'True' to restore the DbToRestore to the Slow hard drive on the Automation Sql Server Instance.
USE [master]
@deadlydog
deadlydog / RevertTFSWorkItemPriorityAndStackRanks.ps1
Last active May 13, 2016
In TFS 2012 a "bug" was introduced that transformed the functionality of the Priority and StackRank fields so that they get updated to a large random number when a work item is reordered in the web access UI, effectively wiping out the previous value that had been set manually (and purposely) by a human being. This script reverts the Priority an…
View RevertTFSWorkItemPriorityAndStackRanks.ps1
Set-StrictMode -Version Latest
$TFS_TEAM_PROJECT_COLLECTION_URI = 'YourProjectCollectionUrl' # e.g. https://tfs.YourDomain.com/tfs/ProjectCollection
Function RevertField ($WorkItemCollection, $FieldName)
{
$WorkItemCount = $WorkItemCollection.Count
$WorkItemCounter = 0
Foreach ($WorkItem in $WorkItemCollection) {
@deadlydog
deadlydog / Show Why Projects Rebuilt in Visual Studio.reg
Last active Sep 10, 2016
Modifies the registry to have the Visual Studio output window show additional info about why a project was rebuilt, even if you had just built it.
View Show Why Projects Rebuilt in Visual Studio.reg
Windows Registry Editor Version 5.00
; This will cause Visual Studio to display additional info in the Output pane as to why a project was rebuilt, even if you had just built it.
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\General]
"U2DCheckVerbosity"=dword:00000001
@deadlydog
deadlydog / Import-PfxCertificate.ps1
Created Dec 1, 2016
PowerShell script that imports a .pfx certificate file. Useful to do before building the solution on a build server.
View Import-PfxCertificate.ps1
param($PfxFilePath, $Password)
$absolutePfxFilePath = Resolve-Path -Path $PfxFilePath
Write-Output "Importing store certificate '$absolutePfxFilePath'..."
Add-Type -AssemblyName System.Security
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($absolutePfxFilePath, $Password, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]"PersistKeySet")
$store = new-object system.security.cryptography.X509Certificates.X509Store -argumentlist "MY", CurrentUser
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::"ReadWrite")
@deadlydog
deadlydog / IncludeClickOnceRevisionInVersionNumber.cs
Created Jan 10, 2017
Shows how to include part of the ClickOnce version in your application version
View IncludeClickOnceRevisionInVersionNumber.cs
public Version ApplicationVersion = new Version("1.11.2");
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
// If this is a ClickOnce deployment, append the ClickOnce Revision to the version number (as it gets updated with each publish).
if (ApplicationDeployment.IsNetworkDeployed)
ApplicationVersion = new Version(ApplicationVersion.Major, ApplicationVersion.Minor, ApplicationVersion.Build, ApplicationDeployment.CurrentDeployment.CurrentVersion.Revision);
// Display the Version as part of the window title.
wndMainWindow.Title += ApplicationVersion;
@deadlydog
deadlydog / UpdateDirectoryLog4NetFilesAreWrittenToForClickOnceApplications.cs
Created Jan 25, 2017
Updates Log4Net appenders to adjust where they are set to write their log files to, to instead write them to the ClickOnce application's data directory.
View UpdateDirectoryLog4NetFilesAreWrittenToForClickOnceApplications.cs
// If we are running via ClickOnce, we need to adjust the path where the log files are written to, otherwise they won't be written at all.
if (ApplicationDeployment.IsNetworkDeployed)
{
var dataDirectory = ApplicationDeployment.CurrentDeployment.DataDirectory;
foreach (var appender in LogManager.GetRepository().GetAppenders())
{
var fileAppender = appender as FileAppender;
if (fileAppender != null)
{
var pathToReplace = Directory.GetParent(Directory.GetParent(fileAppender.File).FullName).FullName;
@deadlydog
deadlydog / Synchronous-ZipAndUnzip.psm1
Created Feb 17, 2017
PowerShell Module to Synchronously Zip and Unzip using PowerShell 2.0
View Synchronous-ZipAndUnzip.psm1
#Requires -Version 2.0
# Recursive function to calculate the total number of files and directories in the Zip file.
function GetNumberOfItemsInZipFileItems($shellItems)
{
[int]$totalItems = $shellItems.Count
foreach ($shellItem in $shellItems)
{
if ($shellItem.IsFolder)
{ $totalItems += GetNumberOfItemsInZipFileItems -shellItems $shellItem.GetFolder.Items() }
@deadlydog
deadlydog / Personal .editorconfig file
Last active Jan 15, 2021
This .editorconfig file should live outside of the repository (and thus not be committed to source control) in a parent directory, as it includes personal preference settings like `indent_size`.
View Personal .editorconfig file
# This .editorconfig file should live outside of all repositories (and thus not be committed to source control) in
# a parent directory, as it includes personal preference presentation settings, like a tab's `indent_size`.
# v1.2
root = true
[*]
indent_style = tab
end_of_line = crlf
trim_trailing_whitespace = true
@deadlydog
deadlydog / Repository's .editorconfig file
Last active Mar 11, 2021
This .editorconfig file should live in the repository and be committed to source control. This file should not contain personal preference settings like `indent_size`, as those should be specified in a parent .editorconfig file outside of the repository.
View Repository's .editorconfig file
# This file should only include settings that affect the physical contents of the file, not just how it appears in an editor.
# Do not include personal preference presentation settings like a tab's `indent_size` in this file; those should be specified
# in a parent .editorconfig file outside of the repository.
# v1.6
# Ensure that personal preference presentation settings can be inherited from parent .editorconfig files.
root = false
[*]
charset = utf-8