Я использую сценарий, чтобы дать пользователю возможность изменить ключ BitLocker. Скрипт работает нормально, когда я запускаю его вручную, но когда я запускаю его из SCCM. Я имею в виду, что я развернул его из SCCM как доступный и работающий из центра программного обеспечения. он показывает установленный, но не работает.

Ниже приведен сценарий.

#powershell.exe -executionpolicy bypass -file ChangePIN.ps1

$DriveLetter = "C:"
# Get the WMI object of the drive $DriveLetter if it’s encrypted
$EncryptableVolume = Get-WmiObject -Namespace "Root\CIMV2\Security\MicrosoftVolumeEncryption" -class Win32_EncryptableVolume -Filter "ProtectionStatus=1 AND DriveLetter='$DriveLetter'"
if ($EncryptableVolume) 
{
    # Handle 64-bit file system redirection on 32-bit SCCM client
    $OS = Get-WmiObject -Class Win32_OperatingSystem | Select-Object OSArchitecture
    if ($OS.OSArchitecture -like "64*")
    {
        $sysfldr = "system32" #$sysfldr = "sysnative"
    } else {
        $sysfldr = "system32"
    }
    # Build command line and run it
    $cmd = @("$ENV:windir\$sysfldr\bitlockerwizardelev.exe",'$($EncryptableVolume.DeviceID)',"U") -join " "
    Invoke-Expression -Command $cmd
}

Я попытался выполнить несколько команд, но все они работают нормально вручную, но не из SCCM.

powershell.exe -executionpolicy bypass -file ChangePIN.ps1
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -noprofile -executionpolicy bypass -file ".\ChangePIN.ps1"

0