none
jak spustit batch skript (.bat) jako správce?

    Dotaz

  • Zdravim,

     

    mám problém se spuštěním zálohovacího skriptu a už se u toho pěkne vztekám. Napsal jsem si skript který pomocí wbadmin dělá a rotuje zálohy serveru, ale nečekaně jsem narazil při spouštění. Windows server 2008 nekompromisně vyžaduje "spustit jako spravce" bez ohledu na to jak jsem přihlášený, jinak to nejde spustit resp. to píše že wbadmin neni nazev spustitelného programu. Jediné jak to funguje je spustit  cmd.exe (přes spustit jako správce) a pak spustit ten .bat soubor. To se bohužel musí dělat ručně, já potřebuju aby to jelo automaticky přes task scheduler, ale tam se mi nepodařilo nastavit aby se to spustilo "jako spravce".

       Snažím se docílit toho abych to task scheduleru dal jako úlohu ten .bat soubor který korektně proběhne a udělá zálohu. Bohužel tohle nějak nefunguje, i kdyz třeba v průzkumníku vyberu ten .bat soubor, dám "spustit jako správce" stejně to ignoruje a napíše že wbadmin neexistuje (bez ohledu na to jestli uvedu cestu).

    Pokud si napíšete jakýkoliv batch skript který volá wbadmin, mělo by to být vidět, např. něco takového:

    echo test

    wbadmin

    pause > nul

    (pouze vypíše nápovědu a čeká na stisk klávesy). Pokud to uložíte do souboru třeba test.bat a spustíte, napíše to že wbadmin neexistuje. To samý pokud to spustíte jako správce, nebo přes task scheduler. Jediné kdy to funguje je že najdete cmd.exe, spustíte jako správce, a pak v promptu napíšete test.bat.

     

    Co už jsem zkoušel nebo mě napadá:

    - spustit .bat jako správce - nejde

    - vytvořit zástupce a tam zvolit "spustit jako administrator" - nejde, to samý

    - cmd.exe s parametrem toho .bat souboru, což nefunguje (!) , cmd.exe vezme jako parametr jen příkaz, ne batch soubor. Kdyby to fungovalo, asi by šlo spustit cmd jako spravce v task scheduleru, to je ale jenom doměnka a myslim že k ničemu vzhledem k tomu že to neumí převzít jako parametr ani batch soubor

    - runas - myslim že to tady nepomůže nehledě na to že se to ptá na heslo --> nepoužitelné

    - vypnout celej ten nesmysl UAC nebo co je za tohle zodpovědný, byť to se mi vzhledem k tomu že se jedná o server moc nechce.

     

    napadá někoho něco jak by to šlo udělat?

     

    díky x.

     

     

    úterý 14. září 2010 9:24

Odpovědi

  • Spousteni davkovych souboru s maximalnimi pravy z task scheduleru je naprosto bezne a funkcni zhusta vyuzivane reseni.

    Zacni tim ze zmenis koncovku z .bat na .cmd. Nejsme v DOSu :)

    Dale napis jaky presne OS pouzivas - jedna se o Win 2008 (ne R2) server 32 nebo 64 bit? Chybova hlaska vypada jako bys mel spusteny 32bit command shell, z nej samozrejme budes mit problem dostat se k nativnim 64bit aplikacim jako je wbadmin. Poznas myslim napr. i tak ze wbadmin naleznes v \windows\sysnative\wbadmin .

    Co se tyce task scheduleru: pod jakym uzivatelskym uctem ulohu spoustis (dejmetomu Administrator) a mas zaskrtnuto [x] Run with highest priviledges?

    Takto vytvorenou davku pak navic muzes spustit pomoci schtasks /run /tn NazevUlohy z neelevovaneho prostredi a task scheduler se postara o elevaci.

    MP

    • Označen jako odpověď xtas úterý 14. září 2010 13:38
    úterý 14. září 2010 9:39
    Vlastník

Všechny reakce

  • Spousteni davkovych souboru s maximalnimi pravy z task scheduleru je naprosto bezne a funkcni zhusta vyuzivane reseni.

    Zacni tim ze zmenis koncovku z .bat na .cmd. Nejsme v DOSu :)

    Dale napis jaky presne OS pouzivas - jedna se o Win 2008 (ne R2) server 32 nebo 64 bit? Chybova hlaska vypada jako bys mel spusteny 32bit command shell, z nej samozrejme budes mit problem dostat se k nativnim 64bit aplikacim jako je wbadmin. Poznas myslim napr. i tak ze wbadmin naleznes v \windows\sysnative\wbadmin .

    Co se tyce task scheduleru: pod jakym uzivatelskym uctem ulohu spoustis (dejmetomu Administrator) a mas zaskrtnuto [x] Run with highest priviledges?

    Takto vytvorenou davku pak navic muzes spustit pomoci schtasks /run /tn NazevUlohy z neelevovaneho prostredi a task scheduler se postara o elevaci.

    MP

    • Označen jako odpověď xtas úterý 14. září 2010 13:38
    úterý 14. září 2010 9:39
    Vlastník

  • já jsem si říkal že by to bylo divný.. a jak píšeš, ušetřil jsem si tím za dob DOSu hromadu práce :-)

    jedná se o Windows 2008 server standard, 64-bit, SP2.

    standardně mě to hodí do %WINDIR%\system32 kde by měl být opravdu 64-bit cmd.exe, nicmene to byla dobra poznamka protoze se uz asi blizim k problemu: zjistil jsem v task manageru ze se mi spousti cmd*32 - a doslo mi, ze jsem blbej a spoustim to z 32-bit file commandera, to je ostuda :-)

    testovací výpis z wbadmin do souboru už mi task scheduler udělá, takže předpokládám že to bude ok, nastavím backup a dám vědět jak to dopadlo ale vypadá to že už tomu nic nebrání
    úterý 14. září 2010 13:32
  • tak mi to nedalo a vecpal jsem tam jednu ruční zálohu - a jede to, super. To by mě fakt nenapadlo... děkuju
    úterý 14. září 2010 13:38
  • pouzivat 32 bit file manager na 64 bit OS - nutnost na to neustale pamatovat.

    MP

    úterý 14. září 2010 14:00
    Vlastník