Значение реестра при каждом запуске - PullRequest
0 голосов
/ 17 мая 2019

Я начал создавать этот сценарий и застрял в одном, чего я хочу достичь.Этот скрипт работает нормально.Но что я действительно хочу сделать, так это когда этот скрипт запускается более одного раза, я хочу изменить значение на количество раз, которое этот скрипт использовался.Как мне это сделать?

$RegistryPath = "HKLM:\SOFTWARE\"
$NewRegKey = "SCCM"
$NewRegKeyPath = "HKLM:\SOFTWARE\SCCM"
$KeyName = "Attempts" 
$Value = "1"
New-Item -Path $RegistryPath -Name $NewRegKey -Force 
New-ItemProperty -Path $NewRegKeyPath -Name $KeyName -Value $Value -PropertyType DWORD -Force -ErrorAction SilentlyContinue | Out-Null

НОВЫЙ скрипт: (Работающий)

#This is creating the SCCM Hive and add the key W10_IPU_Attempts
If (Get-ItemProperty -Path 'HKLM:\SOFTWARE\SCCM' -ErrorAction SilentlyContinue) {

} Else {
$RegistryPath = "HKLM:\SOFTWARE\"
$NewRegKey = "SCCM"
New-Item -Path $RegistryPath -Name $NewRegKey -Force 
$NewRegKeyPath = "HKLM:\SOFTWARE\SCCM"
$KeyName = "W10_IPU_Attempts"
$Value = "0"
New-ItemProperty -Path $NewRegKeyPath -Name $KeyName -Value $Value -PropertyType DWORD -Force | Out-Null

}

#Set value in increment of 1 each time this script is ran!
$i= 
$Value =(Get-Itemproperty 'HKLM:\SOFTWARE\SCCM').W10_IPU_Attempts

If ($i -eq $value){

$i++
Set-ItemProperty -Path 'HKLM:\SOFTWARE\SCCM' -Name W10_IPU_Attempts -Value $i 
}
else {
$i++
Set-ItemProperty -Path 'HKLM:\SOFTWARE\SCCM' -Name W10_IPU_Attempts -Value $i
}

1 Ответ

0 голосов
/ 17 мая 2019

Я предлагаю использовать splatting с вашим набором параметров.

В противном случае сделать как предложено, (проверить) прочитать текущее значение, установить инкрементное значение, если его нет, создать ключ

## Q:\Test\2019\05\17\SO_56190969.ps1
$RegistryPath  = "HKLM:\SOFTWARE\"
$NewRegKey     = "SCCM"
$NewRegKeyPath = "HKLM:\SOFTWARE\SCCM"
$KeyName       = "Attempts"

if ($Value=[Int](Get-ItemPropertyValue $NewRegKeyPath -Name $KeyName -EA 0)){
    Set-ItemProperty -Path $NewRegKeyPath -Name $KeyName -Value (++$Value) -Type DWord
} else {
    New-Item -Path $RegistryPath -Name $NewRegKey -Force | Out-Null
    $params = @{
        Path        = $NewRegKeyPath
        Name        = $KeyName
        Value       = 1
        PropertyType= 'DWORD'
        Force       = $True
        ErrorAction = 'SilentlyContinue'
    }
    New-ItemProperty @params | Out-Null
}

"Key    : {0}`nKeyname: {1}`nValue  : {2}" -f $NewRegKeyPath,$KeyName,
    (Get-ItemPropertyValue $NewRegKeyPath -Name $KeyName)
#

Два образца:

> Q:\Test\2019\05\17\SO_56190969.ps1
Key    : HKLM:\SOFTWARE\SCCM
Keyname: Attempts
Value  : 1

> Q:\Test\2019\05\17\SO_56190969.ps1
Key    : HKLM:\SOFTWARE\SCCM
Keyname: Attempts
Value  : 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...