Я использую пользователя с ролью администратора. Однако по умолчанию сценарии запускаются в режиме UAC, а не в качестве администратора. Можно ли открыть консоль powershell со сценарием powershell без диалогового окна UAC?
Я попытался поднять задачу, которую я хочу выполнить, следующим образом, но это дает мне диалоговое окно, которое необходимо посетить:
# Get the ID and security principal of the current user account
$myWindowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent();
$myWindowsPrincipal = New-Object System.Security.Principal.WindowsPrincipal($myWindowsID);
# Get the security principal for the administrator role
$adminRole = [System.Security.Principal.WindowsBuiltInRole]::Administrator;
# Check to see if we are currently running as an administrator
if ($myWindowsPrincipal.IsInRole($adminRole))
{
# We are running as an administrator, so change the title and background colour to indicate this
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)";
$Host.UI.RawUI.BackgroundColor = "DarkBlue";
Clear-Host;
}
else {
# We are not running as an administrator, so relaunch as administrator
# Create a new process object that starts PowerShell
$newProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell";
# Indicate that the process should be elevated
$newProcess.Verb = "runas";
# Start the new process
[System.Diagnostics.Process]::Start($newProcess);
# Exit from the current, unelevated, process
Exit;
}
#DOING SOME TASK HERE
Однако это открывает диалоговое окно UAC, которое подтверждает, хочу ли я открыть powershell в режиме администратора.
Другой способ, который я пробовал, — открыть консоль powershell в режиме администратора по умолчанию (я использую WS 2012, и способ сделать это такой же, как и в Windows 10). Однако у меня нет прав на внесение подобных изменений в систему, поскольку DevOps запрещает мне это делать. Есть ли другой способ справиться с этим с помощью сценариев powershell?