dolezel.net

Co není v hlavě, je v blogu...

Spouštění programů pod doménovým účtem z ne-doménového počítače

Nainstaloval jsem si pod VirtualBoxem Windows Server 2008 Standard v Core edici, nainstaloval přes ocsetup roli DNS server, vytvořil si textový soubor s unattended instrukcemi pro dcpromo, rebootoval, vše OK. No jo, jenže jak se teď připojit k DNS serveru a zkontrolovat obsah zóny, když mám notebook zapojený do pracovní domény, která s tou virtuální nemá pranic společného? Stará dobrá finta “net use \\server\ipc$ /user:domain\user” fungovala dobře na WNT4, částečně na W2000/W2003, ale na W2008 se už moc nechytá. RUNAS.EXE či Run as administrator (případně v kombinaci se SHIFT klávesou Run as different user) také nezabíral. Existovala samozřejmě jednoduchá pomoc – ve virtuálu rozjet management stanici, kterou bych zapojil do virtuální domény. Nechci si však užírat výkon notebooku během dalšího virtuálního počítače, takže nedá se přeci jen nějak zařídit připojení z RSAT utilit na fyzickém notebooku? Odpověď zní – jde a to překvapivě jednoduše. Uvedený postup funguje NEJEN z ne-doménového počítače, ale dokonce i z počítače, který je členem jiné, netrustované domény.

Takhle vypadal pokus o spuštění DNS Managera k virtuálním Active Directory některým z výše zmíněných postupů.

runas_netonly1

Bylo mi jasné, že nemůžu být jediný, kdo se trápí s obdobným problémem, takže jsem začal hledat – a našel. Popisovaný případ se týkal konzultanta, jehož notebook byl členem pracovní skupiny a on s ním potřeboval pracovat v doménovém prostředí svých zákazníků.

Celé kouzlo spočívá v použití parametru /netonly příkazu runas.exe. Program je na notebooku spuštěn pod účtem zalogovaného uživatele a doménové jméno uvedené v /user parametru je použito pouze pro síťový přístup.

V mém případě, kdy jsem chtěl spustit DNS Manager tak, aby s ním bylo možné spravovat virtuální DNS server, bylo na notebooku s Windows 7 potřeba:

  1. spustit Command Prompt přes Run as administrator
  2. v příkazové řádce zadat:
    runas /netonly /user:test\administrator "%SystemRoot%\system32\mmc.exe %SystemRoot%\system32\dnsmgmt.msc /s"
    Enter the password for test\administrator:
    Attempting to start C:\Windows\system32\mmc.exe C:\Windows\system32\dnsmgmt.msc /s as user "test\administrator" ...
  3. v DNS Manageru se připojit ke vzdálenému DNS serveru

runas_netonly2

Připojení z Active Directory Users and Computers probíhá obdobně:

runas /netonly /user:test\administrator "%SystemRoot%\system32\mmc.exe %SystemRoot%\system32\dsa.msc /s"

Zde je krapet zrada v tom, že je nutné odklepnout chybovou hlášku a zvolit přesně doménový řadič.

runas_netonly3

Konstrukce těch příkazů je docela příšerná, takže se nabízí otázka, zdali by nebylo lepší spustit mmc.exe a zde si pak přidávat či odebírat snap-in moduly dle potřeby. Dobrá zpráva, u některých snap-inů to jde.

runas /netonly /user:test\administrator %SystemRoot%\system32\mmc.exe

runas_netonly4

Vzpomněl jsem si, že tento problém jsme řešili již na podzim roku 2007, kdy jsme po přechodu z WXP na Vista ztratili možnost z Vist administrovat SQL Server 2005 umístěný v jiné doméně. Řešením byl taktéž příkaz runas /netonly – více zde.

Pro tisk

Komentáře (3) -

  • Martin Zugec

    30. 11. 2009 21:02:49 |

    Ahoj,

    existuje este jedna finta, o ktorej moc ludi nevie - planoval som na to kedysi dokonca napisat GUI, ale takych planov je strasne moc a casu malo Smile

    Ukoncit explorer.exe a potom ho spustit pomocou procesu, kde je pridany explicit token (napriklad cmd.exe spustene pomocou runas /netonly).

    V ten moment sa (z uzivatelskeho hladiska) ten stroj zacne spravat ako regulerny domenovy pocitac.

    Martin

  • Radek Doležel

    1. 12. 2009 0:39:39 |

    Tak tohle jsem vskutku neznal, pokud tím nepočítám marné snahy spustit explorer.exe pod jiným uživatelem Smile Takhle si naběhl snad každý. Každopádně popisovaný postup je hodně zajímavý, tohle si zítra v nějakém virtuálu odzkouším. Zajímalo by mne totiž, jak se to bude chovat v kombinaci s UAC, zdali budou mít doménoví admini právo přistupovat na můj disk (s předpokládaným povoleným prostupem na lokálním firewallu) atd.

  • Martin Zugec

    2. 12. 2009 9:29:12 |

    Co sa tyka domain adminov, tak urcite nie - ten comp nie je sucastou domeny z ich pohladu, len z Tvojho Smile

    Co sa tyka UAC, tak to funguje, ALE narazil som obcas na problemy. Princip u explicit logonu je vlastne podobny ako u SID history - k Tvojmu procesu (resp. k jeho tokenu) sa prida dalsi logon SID.

    Najjednoduchsi sposob ako si to overit je pouzit Process Explorer. Zapnes si dva procesy, napriklad Calc.exe, jeden normalne a druhy pomocou netonly. Pokial sa pozries na Security zalozku, tak u toho druheho uvidis 2x Logon SID ;)

    Funguje to tak (zjednodusene), ze pouzije prvy logon sid ktory sa voci danemu objektu dokaze overit (ci uz accepted alebo denied), takze viacero uctov z jednej domeny takto spajat nemozes (aspon mne to nefungovalo).

    Martin

Komentáře jsou uzavřeny