मैं ओएस संस्करण के आधार पर एक reg कुंजी परिवर्तन करने की कोशिश कर रहा हूँ। कुंजी परिवर्तन पैट ठीक काम करता है, हालांकि अगर डिवाइस को इसकी आवश्यकता है या नहीं तो काम करने के लिए काम करने के लिए मैं काम नहीं कर सकता। कोई भी सलाह सहायक होगी। पावरशेल नीचे है।

$verCheckOS = (Get-WmiObject win32_operatingsystem).version
    
if ($verCheckOS -lt 10.0.19043 -and $verCheckOS -gt 10.0.17134)
{
    if (Test-Path HKLM:\SOFTWARE\Policies\Microsoft\AzureADAccount)
    {
        CD HKLM:\SOFTWARE\Policies\Microsoft
        New-Item -Name AzureADAccount
        New-ItemProperty -Path "AzureADAccount" -Name "AllowPasswordReset" -Value 1 -PropertyType DWord
    }
}
Else
{
}
0
harryc 17 सितंबर 2021, 10:02

2 जवाब

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

पावरशेल को संस्करण संख्याओं की ठीक से तुलना करने के लिए आपको उन्हें उचित प्रकार में डालने की आवश्यकता है।

$verCheckOS = [version](Get-CimInstance -ClassName CIM_OperatingSystem).Version 
if ($verCheckOS -lt [version]'10.0.19043' -and $verCheckOS -gt [version]'10.0.17134') {
    if (-not (Test-Path HKLM:\SOFTWARE\Policies\Microsoft\AzureADAccount)) {
        Push-Location 'HKLM:\SOFTWARE\Policies\Microsoft'
        New-Item -Name 'AzureADAccount' 
        New-ItemProperty -Path 'AzureADAccount' -Name 'AllowPasswordReset' -Value 1 -PropertyType DWord
    }
}
1
Olaf 17 सितंबर 2021, 10:30
$verCheckOS = (Get-WmiObject win32_operatingsystem).version        
if ($verCheckOS -lt "10.0.19043" -and $verCheckOS -gt "10.0.17134")
{
    if (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\AzureADAccount"))
    {
        $null = New-Item -Name "AzureADAccount" -Path "HKLM:\SOFTWARE\Policies\Microsoft\"
        $null = New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\AzureADAccount" -Name "AllowPasswordReset" -Value 1 -PropertyType DWord
    }
}

मैं आपके कोड से थोड़ा भ्रमित हूं। आप जांचते हैं कि AzureADAccount कुंजी का पूरा पथ मौजूद है या नहीं और फिर यदि आप इसे बनाने और प्रयास करने के लिए आगे बढ़ते हैं? मुझे लगता है कि आपका मतलब है कि अगर यह अस्तित्व में नहीं है तो इसे बनाएं? मेरा मतलब है कि आपका कोड निष्पादित नहीं होगा यदि यह वहां नहीं है तो इसे बनाने के लिए लाइन बस त्रुटि हो रही है। इसलिए मैंने इसे ब्लॉक को चलाने के लिए तभी बदल दिया जब पथ मौजूद नहीं है। यदि यह गलत है तो टेस्ट-पाथ लाइन को वापस उसी तरह रखें जैसे आपके पास था और 'न्यू-आइटम -नाम "एज़ूरएडीएकाउंट" लाइन को इसके अर्थहीन के रूप में हटा दें और न्यू-आइटमप्रॉपर्टी लाइन रखें।

इसके अलावा संख्याओं के आस-पास उद्धरण जोड़ने से संस्करण की जांच हो जाती है कि क्या मेरे परीक्षण में कथन मेरे लिए ठीक काम करता है।

0
mOjO 17 सितंबर 2021, 10:33