मैंने इस स्क्रिप्ट को बनाना शुरू किया और मैं एक चीज पर अटक गया जिसे मैं पूरा करना चाहता हूं। यह स्क्रिप्ट ठीक चलती है। लेकिन जो मैं वास्तव में करना चाहता हूं वह यह है कि जब यह स्क्रिप्ट एक से अधिक बार चलती है, तो मैं इस स्क्रिप्ट का उपयोग करने की संख्या में मान को बदलना चाहता हूं। मैं इसे कैसे पूर्ण करूं?

$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
}
0
Dude be PSing 17 मई 2019, 20:21

1 उत्तर

सबसे बढ़िया उत्तर

मैं का उपयोग करने का सुझाव देता हूं अपने मापदंडों के समूह के साथ 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
0
user6811411user6811411 17 मई 2019, 19:09