How to create a EFI partition using PowerShell?

I suspect this would be the equivalent in PowerShell:

New-Partition -DiskNumber 0 -Size 100MB -GptType "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}" -DriveLetter "S"
Format-Volume -FileSystem FAT32 -NewFileSystemLabel "SYSTEM" -DriveLetter "S" -Force

Modify as appropriate to suit your use-case.


Please note that you need to select a disk before you can create a partition.

Read diskpart /?, use :

Microsoft DiskPart syntax:
        diskpart [/s <script>] [/?]

        /s <script> - Use a DiskPart script.
        /?          - Show this help screen.

Note that a DiskPart script is simple plain text file where the diskpart commands are placed in (one command per line), for instance MyDiskpart.txt listed below.

diskpart /s MyDiskpart.txt

Answer: The latter command you can run from an elevated powershell session as well as from an elevated cmd session (˙diskpart˙ always requires elevation).

Addendum:

Moreover, Diskpart accepts input from a pipe ('|') as well as from < redirection so that the following cmd commands are equivalent:

diskpart /s MyDiskpart.txt
diskpart<MyDiskpart.txt
type MyDiskpart.txt|diskpart

The latter commands tested using the following diskpart script:

==> type MyDiskpart.txt
list disk
list volume
select disk 1
list partition

Moreover, you need not to create a diskpart script file; the following .bat script displays system volume details (selecting volume # dynamically):

@ECHO OFF
SETLOCAL EnableExtensions

:check_permissions
echo Administrative permissions required. Detecting permissions...
net session >nul 2>&1
if %errorLevel% == 0 (
    echo Success: Administrative permissions confirmed.
) else (
    echo Failure: Current permissions inadequate.
    goto :endlocal
)

:do_the_job
for /f "tokens=2" %%a in ('echo list volume ^| diskpart ^| findstr System') do (
    (
        echo select volume %%a
        echo detail volume
    ) | diskpart
)
echo DONE
:endlocal
pause