Я использую сценарий, чтобы дать пользователю возможность изменить ключ 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"