Skip to main content

Playing with registry keys

Hello Fellow System Administrators
For some reasons, I had to keep track of some variables and instead of using environmental variables, I tried to write down these variables to registry. Basically I tried to write registry keys to \HKLM\Software\<Contoso> path. I think everyone passes by here knows which company Contoso.com is.

Lets start with reading registry with
get-childItem hklm:\Software\Contoso
Or Key properties like
(Get-ItemProperty -Path hklm:\Software\Contoso).Test

After reading key and key property, now we can check the key and create it on control if it doesn't exist.

function Get-RegistryKey
{
    param(
    [Parameter(Position=0,mandatory=$true)][String]$RegProperty,
    [Parameter(Position=0,mandatory=$true)][String]$RegPath,
    [String]$RegKey="."
    )
    
    $ReturnThis=New-Object psobject -Property @{Error="0";Value="0"}
    
    if (!$(Test-Path -path $RegPath\$RegKey))
    {
       Set-RegistryKey.ps1 -RegProperty $RegProperty -RegPath $RegPath -RegValue "0"
    }
    
    $ReturnThis.Value=(Get-ItemProperty -Path $RegPath\$RegKey\).$RegProperty
    
    if ($Null -eq $ReturnThis.Value)
    {
        Set-RegistryKey.ps1 -RegProperty $RegProperty -RegPath $RegPath -RegValue "0"
        $ReturnThis.Value="0"
    }
    
    $ReturnThis
}

You can check set-registrykey.ps1 from below

function Set-RegistryKey
{
param(
[Parameter(Position=0,mandatory=$true)][String]$RegPath,
[Parameter(Position=0,mandatory=$true)][String]$RegProperty,
[Parameter(Position=1,mandatory=$true)][String]$RegValue,
[String]$RegKey="."
)

if (!$(Test-Path -path $RegPath\$RegKey))
{
    New-Item -Path $RegPath -Name $RegKey
}
Set-ItemProperty -Path $RegPath\$RegKey -Name $RegProperty -Value $RegValue
}

Now we can count ourselves as we can play with registries.

Thats all for today guys.
I hope it helps

See you


Comments

Popular posts from this blog

Network Scan via DHCP scopes

Hi, this post is about checking network reachability using DHCP scopes and ping. Despite network monitoring tools monitor all network, using DHCP scopes might be a useful technique for crosscheck. In order to do that, we can get scopes and find scope option with 003 ID (Router) $scopes = Get-DhcpServerv4Scope You can get scope router like this $scopeRouter = $scope | Get-DhcpServerv4Optionvalue -Optionid 003 -ErrorAction SilentlyContinue And you can acquire the result like $result = Test-NetConnection $( $scopeRouter .Value) You can find the script on GitHub https://github.com/ertugrulblt/PublicRepo/blob/master/Scan-ScopesReachability.ps1

First things first - Visual Studio Code and github integration

In this post, I want to show how to install the Visual Studio Code and show GitHub repositories. First download VS Code from Microsoft's site:  https://code.visualstudio.com/download# Let's start the installation. First, select the language Accept the license agreement :) We all know nobody reads it Choose the path Create a shortcut Please read the preferences, they are useful. I usually select everything here And then simply install. After the installation is completed, we can move on to VScode with complacence. Now we can select the repository folder to synchronize GitHub. File-->Add Folder To Workspace--> <Select folder to synchronize> Let's jump to git installation for a while. Download git and install it. Download git from  https://git-scm.com/download/win Apply for GNU license Select the folder to install, then leave the options below and move forward. Most of the time git shortcuts are not needed. Now s...