Set-RegKeyVal.ps1
################################################################################
#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