none
Esecuzione script via GPO come amministratore RRS feed

  • Domanda

  • salve a tutti,

    mi trovo a gestire un'AD con DC 2012 R2, sulla quale vorrei distribuire una GPO che mi permetta di gestire gli utenti locali delle macchine di tutte le sedi (circa 300 client su 20 sedi sul territorio italiano). l'obbiettivo è eliminare gli utenti locali conosciuti ed impostare un altro local admin utilizzando lo script che segue:

    @echo off
    net user "User" "Password" /add /comment:"User" /passwordchg:NO
    wmic useraccount where "name='User'" set passwordexpires=FALSE
    net localgroup "Administrators" User /add
    net user admin /delete
    exit

    Ovviamente per funzionare richiede esecuzione come amministratore, dunque ho provato utilizzando runas.exe a richiamare lo script precedente:

    @echo off
    runas.exe /user:domain\user -p "password" "%windir%\system32\cmd.exe" \\ServerName\GPO\Local_Users_Script.bat
    exit

    Ma a quanto pare runas.exe non prevede il parametro password, quindi mi trovo bloccato e non riesco ad automatizzare l'operazione.

    Avete consigli al riguardo?

    Grazie

    Fabio Caruso


    lunedì 26 marzo 2018 16:09

Risposte

  • hai una cartella scripts a questo livello ?

    \\<domain DNS name>\sysvol\<domain DNS name>\scripts

    se si, metti i tuoi script li dentro e linkali nella group policy.


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    • Contrassegnato come risposta Fabio Caruso giovedì 19 aprile 2018 15:59
    giovedì 19 aprile 2018 15:31
    Moderatore

Tutte le risposte

  • Ciao Fabio,

    Guarda qui https://www.petri.com/run-startup-script-batch-file-with-administrative-privileges

    Fai uno startup script che viene eseguito con l'account di sistema. Dovrebbe andare.

    Simon


    If you find that my post has answered your question, please mark it as the answer. If you find my post to be helpful in anyway, please click vote as helpful. Regards Simon Disclaimer: This posting is provided AS IS with no warranties or guarantees, and confers no rights.

    lunedì 26 marzo 2018 17:33
  • Ciao Simon,

    grazie per il suggerimento, avevo già provato questa soluzione, ma purtroppo continua a non funzionare.

    aggiungo, se può essere utile, che eseguendo dalla macchina gpresult /r la policy creata appare tra quelle applicate.

    Fabio

    martedì 27 marzo 2018 06:54
  • In che cartella hai messo lo script?

    If you find that my post has answered your question, please mark it as the answer. If you find my post to be helpful in anyway, please click vote as helpful. Regards Simon Disclaimer: This posting is provided AS IS with no warranties or guarantees, and confers no rights.

    martedì 27 marzo 2018 10:01
  • inizialmente l'avevo messo in uno share nascosto, poi ho provato anche come descrive la guida, quindi direttamente nella cartella della policy.
    martedì 27 marzo 2018 10:19
  • Non è che hai qualche altra GPO che ti sta andando sopra? Tipo una riguardante i Restricted Groups che eliminerebbero le modifiche appena fatte?

    Ti consiglio di creare una OU Test che non abbia alcune GPO applicate, sposta l'oggetto del computer test lì e testa.

    Simon


    If you find that my post has answered your question, please mark it as the answer. If you find my post to be helpful in anyway, please click vote as helpful. Regards Simon Disclaimer: This posting is provided AS IS with no warranties or guarantees, and confers no rights.

    martedì 27 marzo 2018 19:34
  • Sto già lavorando su una OU separata con una macchina di test, lo faccio sempre prima di implementare una GPO. Al momento l'unica GPO applicata insieme a questa sull'OU di test è la "default domain policy", che comunque non ho modificato.
    mercoledì 28 marzo 2018 07:17
  • Intanto modifica lo script in modo che scriva un file di LOG, in questo modo puoi verificare l'effettiva esecuzione ed eventuali messaggi di errore restituiti.
    mercoledì 28 marzo 2018 10:58
    Moderatore
  • Ciao Fabrizio,

    ho eseguito lo script aggiungendo la scrittura del log.

    @echo off
    >log.txt (
    net user Update "Password" /add /comment:"Update" /passwordchg:NO
    wmic useraccount where "name='Update'" set passwordexpires=FALSE
    net localgroup "Administrators" Update /add
    net user admin /delete
    net user user /delete
    )
    exit

    ho provato ad eseguirlo come user(accesso negato) e come administrator(ovviamente funziona), ma il log che mi genera su entrambe le utenze è lo stesso:

    Aggiornamento propriet… di '\\GPO-TEST\ROOT\CIMV2:Win32_UserAccount.Domain="GPO-TEST",Name="Update"'

    Aggiornamento delle propriet… riuscito.

    Aggiornamento propriet… di '\\GPO-TEST\ROOT\CIMV2:Win32_UserAccount.Domain="DOMAIN",Name="Update"'




    giovedì 29 marzo 2018 14:02
  • quando hai provato con lo script batch lanciato come script di startup eseguito nell'ambito di sicurezza di localsystem cosa hai ottenuto ?

    avevi errori nel registro eventi ?


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    martedì 3 aprile 2018 14:14
    Moderatore
  • Ciao Edoardo,

    scusami per il ritardo nella risposta, effettivamente ho il seguente errore nel registro di sistema:

    E nei dettagli il seguente output:

    "- System 

      - Provider 

       [ Name]  Microsoft-Windows-GroupPolicy 
       [ Guid]  {AEA1B4FA-97D1-45F2-A64C-4D69FFFD92C9} 

       EventID 1130 

       Version 0 

       Level 2 

       Task 0 

       Opcode 0 

       Keywords 0x8000000000000000 

      - TimeCreated 

       [ SystemTime]  2018-04-18T09:56:04.303978600Z 

       EventRecordID 4658 

      - Correlation 

       [ ActivityID]  {3CB61674-A929-4C09-8659-88996A3316E4} 

      - Execution 

       [ ProcessID]  1140 
       [ ThreadID]  1328 

       Channel System 

       Computer TEST-WIN10.AVRTEST.local 

      - Security 

       [ UserID]  S-1-5-18 


    - EventData 

      SupportInfo1 0 
      SupportInfo2 0 
      ErrorCode 2 
      ErrorDescription Impossibile trovare il file specificato.  
      ScriptType 0 
      GPODisplayName Local Users 
      GPOFileSystemPath \\AVRTEST.local\SysVol\AVRTEST.local\Policies\{1BD60ECD-F771-4EBB-AB83-53A5FF986980}\Machine 
      GPOScriptCommandString Local_Users "

    Ovviamente ho notato l'errore "impossibile trovare il file specificato", ma noto anche che il path si ferma alla cartella "...\Machine" all'interno della policy, quando invece dovrebbe trovere lo script in "...\Machine\Scripts\Startup".

    Hai qualche info al riguardo?

    Grazie

    Fabio Caruso

    mercoledì 18 aprile 2018 10:09
  • ovviamente la prima raccomandazione è quella di ricontrollare il path completo dello script, verificare che lo script esista e che il percorso sia correttamente indicato nella group policy.

    fai sapere.

    ciao.


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    mercoledì 18 aprile 2018 14:22
    Moderatore
  • Ciao Edoardo,

    ho ricontrollato nuovamente anche l'articolo che mi aveva girato Simon (https://www.petri.com/run-startup-script-batch-file-with-administrative-privileges), e lo script esiste, è nel path giusto ed è raggiungibile dalla macchina:

    \\<domain DNS name>\sysvol\<domain DNS name>\Policies\<GUID>\machine\scripts\startup

    solo che come vedi dal post precedente la macchina cerca di eseguire lo script da questo path:

    \\<domain DNS name>\sysvol\<domain DNS name>\Policies\<GUID>\machine

    giovedì 19 aprile 2018 14:02
  • hai una cartella scripts a questo livello ?

    \\<domain DNS name>\sysvol\<domain DNS name>\scripts

    se si, metti i tuoi script li dentro e linkali nella group policy.


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    • Contrassegnato come risposta Fabio Caruso giovedì 19 aprile 2018 15:59
    giovedì 19 aprile 2018 15:31
    Moderatore
  • è andato correttamente stavolta, ma quindi è un bug il fatto che non vada a pescare correttamente gli script dalla policy stessa, piuttosto che cercarli nella cartella script del dominio?

    poi un'altra cosa, ho provato a ricreare gli utenti che vengono cancellati dallo script per vedere se veniva rieseguito correttamente all'avvio successivo, ma così non è... la policy fa una sorta di "run once"?

    giovedì 19 aprile 2018 15:59
  • è andato correttamente stavolta, ma quindi è un bug il fatto che non vada a pescare correttamente gli script dalla policy stessa, piuttosto che cercarli nella cartella script del dominio?

    il problema dovrebbe essere dovuto alla lunghezza in caratteri del path che windows non sempre riesce a gestire.

    poi un'altra cosa, ho provato a ricreare gli utenti che vengono cancellati dallo script per vedere se veniva rieseguito correttamente all'avvio successivo, ma così non è... la policy fa una sorta di "run once"?

    la policy non fa un "run once" a meno che tu non lo definisca. per capire cosa succede bisognerebbe leggere il codice dello script.

    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    venerdì 20 aprile 2018 06:42
    Moderatore