높은 Powershell을 시작하고 높은 스크립트를 실행할 때 사용할 변수를 보냅니다.

높은 Powershell을 시작하고 높은 스크립트를 실행할 때 사용할 변수를 보냅니다.

이 스크립트가 실행되면(승격되지 않음) 이 스크립트는 비밀번호를 묻고 onedrive를 매핑한 다음 자동으로 powershell(상승)을 시작하고 bitlocker에 대한 비밀번호를 다시 묻습니다.

onedrive와 bitlocker에 단일 비밀번호를 사용하는 경우 비밀번호를 한 번 요구하도록 만드는 방법은 무엇입니까? 아니면 Bitlocker를 잠금 해제하기 위해 스크립트에서 사용할 변수(사용자 입력 비밀번호 포함)를 새로운 강화된 Powershell에 전달할 수 있습니까?

#
# (FIRST SET EXECUTION POLICY WITH ELEVATED POWERSHELL) Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
#

param([switch]$Elevated)

function Test-Admin {
    $currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
    $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}

if ((Test-Admin) -eq $false)  {
    if ($elevated) {
        'tried to elevate, did not work'
    } else {


        ### START - CODE FOR "NON-ELEVATED POWERSHELL"
        
        $pwd = Read-Host 'Enter PW:' -AsSecureString
        
        $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwd)
        $UnsecurePassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
        net use O: "https://d.docs.live.net/EXAMPLE-CID" /user:[email protected] $UnsecurePassword /p:no
        
        ### END - CODE FOR "NON-ELEVATED POWERSHELL"


        # RUN "ELEVATED POWERSHELL"
        Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
    }
    exit
}


### START - CODE FOR "ELEVATED POWERSHELL"

$pwd = Read-Host 'Enter PW:' -AsSecureString

Unlock-BitLocker -MountPoint "D:" -Password $pwd

exit

### END - CODE FOR "ELEVATED POWERSHELL"

관련 정보