none
MS SQL trigger - spuštění powershell scriptu s úpravou v Active Directory

    Dotaz

  • Zdravím, nějak se mi nedaří a už potřebuji opět radu.

    V trigerru spouštím externí příkaz:

    ...

    BEGIN
      DECLARE @ParamIntKod VARCHAR(20);
      DECLARE @CMDSQL VARCHAR(1000);
      SET @ParamIntKod = (SELECT [inserted].[INTERN_KOD] FROM [inserted]);
      SET @CMDSQL = 'powershell -Command "C:\pokus.ps1" ' + @ParamIntKod;
      EXEC master..xp_CMDShell @CMDSQL;
    END;

    ...

    Když si do souboru pokus.ps1 dám třeba toto:

    param (
        [string]$mujadr = $(throw "-mujadr is required.")
     )
    mkdir c:\$mujadr

    tak vše funguje a není problém. Mam však problém při pokusu o zapsáná do Active Directory. Na základě modifikace v externí databázi chci vytvářet uživatele v AD. Velmi zjednodušeně vypadá kód na tvorbu uživatele takto:

    param (
        [string]$mujuserr = $(throw "-mujuser is required.")
     )

    Import-Module ActiveDirectory
    New-ADUser -name $mujuser

    Když spustím pouze skript, tak se to provede okamžitě. Když to samé spustím z triggeru, tak se nic nevytvoří a po dlouhe době se trigerr ukončí. Poradíte kde dělám chybu? Případně, nedá se to řešit úplně nějak jinak bez powershellu? Mohl by SQL server přímo ty uživatele vytvářet?

    Předem moc děkuji.

    středa 29. července 2015 10:35

Odpovědi

  • Nechces to misto triggeru delat dejmetomu kazdych 5 minut scriptem?

    Jinak: pod jakym uzivatelem bezi sluzba MSSQLSERVER - a ma tento uzivatel pravo vytvaret AD ucty?

    MP

    • Označen jako odpověď jx734 čtvrtek 30. července 2015 17:21
    středa 29. července 2015 10:43
    Moderátor

Všechny reakce

  • Nechces to misto triggeru delat dejmetomu kazdych 5 minut scriptem?

    Jinak: pod jakym uzivatelem bezi sluzba MSSQLSERVER - a ma tento uzivatel pravo vytvaret AD ucty?

    MP

    • Označen jako odpověď jx734 čtvrtek 30. července 2015 17:21
    středa 29. července 2015 10:43
    Moderátor
  • tak po delším testování jsem došel k následujícímu:
    server jede skutečně pod účtem, který nemá právo upravovat AD.
    Momentálně vychází skutečně nejlépe spouštět skript pod správným účtem jednou za několik minut.
    čtvrtek 30. července 2015 17:21