2013-08-21 35 views
0

我有批處理文件,即test.bat。我需要以管理員模式運行postgresql命令。 基本上該命令是爲postgres設置密碼。 我試圖如何以管理員模式運行命令

C:/用戶/探路者>的RunAs /用戶:管理員網絡用戶的Postgres的Postgres

但它不工作了。

+1

你必須嘗試解釋你想達到什麼 - 上面的命令似乎沒有運行任何東西,據我所知。你想以管理員身份啓動PostgreSQL服務器,還是以「postgres」用戶身份運行一些SQL? –

+0

@RichardHuxton:我想爲postgres設置密碼。 –

+0

你是在談論postgres ** Windows **用戶還是postgres **數據庫**用戶?另外:從9.2開始,不需要特殊的postgres * Windows *用戶來運行該服務 –

回答

1

我試過這段代碼。它的工作,如果我直接運行批處理文件,即test.exe,但如果我將此文件配置爲高級安裝程序並通過.exe文件運行它將進入無限期的終端開放循環。

就在您的批處理文件的開始添加這些代碼:


@ECHO OFF 

:: BatchGotAdmin 
:------------------------------------- 
REM --> Check for permissions 
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" 

REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges... 
    goto UACPrompt 
) else (goto gotAdmin) 



:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" 


    "%temp%\getadmin.vbs" 
    exit /B 


:gotAdmin 
    if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs") 
    pushd "%CD%" 

    CD /D "%~dp0" 

並編寫批處理文件腳本略低於上面的代碼。 它將幫助您以管理員身份執行命令。

相關問題