Skip to content

Instantly share code, notes, and snippets.

View techdecline's full-sized avatar

Cornelius Schuchardt techdecline

View GitHub Profile
<#
.Synopsis
Imports all GPO exports from an input folder.
.DESCRIPTION
Imports all GPO exports from an input folder and allow for automatic linking to a given Organizational Unit.
.EXAMPLE
.\Import-ExportedPolicies.ps1 -GpoBackupFolder C:\Temp\GPO
Imports all policies that where exported to C:\Temp
.EXAMPLE
@techdecline
techdecline / Resolve-UWMShellFolder.ps1
Created September 20, 2018 13:45
Resolve Shell Folder
function Resolve-UWMShellFolder {
[CmdletBinding()]
param (
# Shell Folder Name
[Parameter(Mandatory,ValueFromPipeline)]
[string]
$ShellFolderName
)
process {
$shellFolderArr = [Environment+SpecialFolder]::GetNames([Environment+SpecialFolder])
function Add-NewACE
{
# Fügt einem Objekt eine gewünschte ACE hinzu
param (
[System.IO.DirectoryInfo]$DirectoryItem,
[String]$User,
[System.Security.AccessControl.FileSystemRights]$AccessRule
)
$aclObj = Get-Acl $DirectoryItem
function New-FileShare {
param ($FilePath)
$folder = New-Item -Path $FilePath -ItemType Directory
$readGroup = New-ADGroup -name "ACL_Read_$($folder.Name)" -PassThru -GroupCategory Security -GroupScope DomainLocal
$writeGroup = New-ADGroup -name "ACL_Write_$($folder.Name)" -PassThru -GroupCategory Security -GroupScope DomainLocal
#Start-Sleep -Seconds 5
New-SmbShare -Name $folder.Name -Path $FilePath -ChangeAccess $writeGroup.Name -ReadAccess $readGroup.Name -FullAccess Administrators
}
Function Write-Log
{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[String]$LogFile,
[Parameter(Mandatory=$False)]
[switch]$HiddenLogFile,
param (
[Parameter(Mandatory=$false)]
$logPath = "C:\Code\CreateUser.txt",
[Parameter(Mandatory=$false)]
$csvPath = "C:\Code\ExampleUsers.csv",
[Parameter(Mandatory=$false)]
$homeRoot = "\\$env:computerName\home",
[Parameter(Mandatory=$false)]
$usvRoot = "\\$env:computerName\usv",
[Parameter(Mandatory=$false)]
param (
[String]$GpoBackupFolder = "E:\Sources\Security Baseline\Windows-10-RS4-Security-Baseline-FINAL\GPOs",
[String]$DomainName = "decline.lab",
[String]$PilotOU = "OU=Security Baseline 1803,OU=Workstations,DC=decline,DC=lab"
)
function Get-GpoNameFromReport {
param (
[Parameter(Mandatory)]
[String]$GpoReportPath
@techdecline
techdecline / Refresh-ComputerKerberosTicket.ps1
Last active November 12, 2018 12:05
PowerShell function for removing machine Kerberos Tickets and invoking Group Policy Update
<#
.Synopsis
Refresh Kerberos Ticket for machine and update Group Policy
.Description
Refresh Kerberos Ticket for machine and update Group Policy. Group Policy Refresh can be controlled using Switch Parameter
.Example
PS> Refresh-ComputerKerberosTicket -SessionName "LocalSystem" -UpdateGroupPolicy
Remote Kerberos Tickets for LocalSystem and refresh Group Policy
<#
.SYNOPSIS
This script adds branding information to the Windows Registry for OSD scenarios.
.NOTES
Name: Set-OSDBranding.ps1
AUTHOR: Cornelius Schuchardt, SoftEd Systems GmbH
LASTEDIT: 21.08.2017
KEYWORDS: ConfigMgr, OSD, Branding, Registry
#>
param (
[String]$SecretKey,
[String]$CollectionId,
[String]$ResourceName,
[String]$WebServiceUrl
)
# Connect to Web Service
try {
$URI = $WebServiceUrl