################################################################################ #SetRegKeyVal.ps1 # wenn der Benutzer Mitglied der Gruppe BlaBla ist, dann Key setzen / richard /2022 # zwingende Argumente: # -group Gruppenname # -Path HKCU:\SOFTWARE\Microsoft\Office\16.0\Excel\Security # -Name AccessVBOM # -Value 1 # Setze Registrykey ################################################################################ param( [Parameter(Mandatory=$true)][string]$Group, [Parameter(Mandatory=$true)][string]$Path, [Parameter(Mandatory=$true)][string]$Name, [Parameter(Mandatory=$true)][int]$Value ) $user = "$env:username" $strDomain = "$env:userdomain" ################################################################################ #Hilfsfunktion für Gruppenmitgliedschaftsermittlung über WINNT-Mechanismus function Get-GroupMembership($DNName, $group) { $objgrp = [ADSI]"WinNT://$strDomain/$group,group" $Members= @($objgrp.psbase.Invoke("Members")) | foreach{([adsi]$_).InvokeGet("Name")} if ($Members -contains $DNName) { return $TRUE } else { return $FALSE } } #################################################################################### $result = get-groupMembership $user $group if ($result -eq $TRUE) { ####################################################################### Function Set-RegKeyVal($PATH, $Name, $Value) { $ret = Test-Path -Path $Path -ea SilentlyContinue if ($ret) { if (Get-ItemProperty -Path $Path -Name $Name -ea ignore ) { #echo $true $val = Get-ItemPropertyValue -Path $Path -Name $Name echo $val if (($val -ne 1)) { #echo "nicht eins" Set-ItemProperty -path $path -Name $Name -Value $Value } #else { echo "eins"} } else { #echo $false Set-ItemProperty -path $path -Name $Name -Value $Value } } else { New-Item -Path $Path New-ItemProperty -Path $Path -Name $Name -Value $Value -PropertyType DWord } } } ####################################################################### Set-RegKeyVal $PATH $Name $Value