|
- 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
|
|