Archives For Quest Kace

Ovvero: come sopperire a una mancanza banale del software che a oggi non permette di fare pulizia di quei software non più in giro, ma ancora presenti nel database, un po’ in barba a ciò che è invece possibile fare attraverso il MIA nella schermata relativa ai dispositivi registrati.

NotifyKace.vbs: nuova versione per gli agenti 8

Ammettilo: lo hai fatto almeno una volta nella tua vita, sei andato nella schermata software, li hai messi in ordine per numero di installazioni e hai cominciato a selezionare i checkbox lateralmente per poi andare a cancellarli dal database della tua appliance. L’ho fatto anche io, la cosa ha funzionato così per un paio di volte, poi mi ha stancato perché, nonostante le prime pagine fossero tutte a quantità 0, le altre contenevano un misto dal quale non volevo eliminare le voci con qualche installazione ancora presente nella rete controllata. Per questo motivo ho cercato una soluzione ufficiale che a quanto pare non c’è, passeggiando poi per un viale work-around che funziona egregiamente.

Per filtrare i software con zero installazioni in rete client gestita ti basterà andare in InventorySoftware, fare clic su Advanced Search e inserire questi parametri di ricerca:

  • File Size → = → 0
  • Devices → does not contain → (lascia vuoto l’ultimo box)
  • (opzionale) Publisher → does not contain → (compila con ciò che ti interessa)

Prima ti mostro la schermata catturata dal Kace che gestisco, poi ti spiego il perché dell’opzionale e del valore “GSolone” che ho assegnato nella mia ricerca:

Kace: filtrare facilmente i software con 0 installazioni

L’opzionale è presto detto, ci sono alcuni software “Home Made” che mi permettono di generare delle Custom Inventory Rules o di prevedere comportamenti di Kace che rispettano alcune procedure stabilite dal nostro team IT, talvolta potrebbe capitare di avere 0 dispositivi associati a quei Custom Software, vorrei evitare di perderli in qualche pulizia manuale alla quale non si pone sufficiente attenzione. Questo per dire che anche nel tuo caso puoi fare delle eccezioni da non far finire nel calderone, basando una parte di ricerca avanzata su un parametro ben preciso.

Scopo del gioco è quello di salvare la ricerca avanzata per poterla ripescare facilmente in seguito, per passare lì di tanto in tanto e fare piazza pulita di ciò che non ti interessa realmente più.

Buon lavoro!


Credits: itninja.com/question/k1000-kace-cleaning-up-software-inventory

Condividi l'articolo con i tuoi contatti:

Ho rimesso mano al ChannelSelector per Office di cui ti avevo parlato un anno fa circa, un po’ per mettere a posto i nuovi nomi dei canali di aggiornamento adottati da Microsoft, un po’ per cambiare il metodo di intervento sul registro, in accordo con ciò che oggi è ormai capace di fare il Click2Run ufficiale che teoricamente utilizzi per mandare in downgrade o upgrade forzato una suite Office dal prompt dei comandi. Andiamo con ordine però, nell’articolo ti spiegherò le novità dello script, i riferimenti da adottare per il Registro di Sistema e l’uso in alternativa del C2R disponibile nella cartella Common Files di Office, soluzione che continua a rimanere ufficiale, pensata e distribuita direttamente da Microsoft.

Office 365 ProPlus (2016): aggiornamento di ChannelSelector

Il nuovo ChannelSelector

Tolto il blocco informativo iniziale con i riferimenti e le fonti utilizzate, cambia il metodo di azione sul Registro di Sistema (regedit), andando a compilare / modificare il campo CDNBaseUrl che determina l’URL dal quale scaricare i file di installazione o aggiornamento di Office, si passa poi alla rimozione delle altre chiavi di registro precedentemente valorizzate, così da permettere al tuo Office di popolarsele autonomamente al successivo avvio e conseguente ricerca aggiornamenti (inevitabile, considerando che stai cambiando canale di distribuzione).

Rimangono invece disponibili e valide le altre opzioni, fatte per conoscere il branch utilizzato e bloccare o permettere gli aggiornamenti automatici della suite. Una verifica introdotta con questa versione dello script si occuperà di terminarlo nel caso in cui non rilevi un’installazione di Office 2016 a bordo macchina.

Avvia lo script come amministratore locale della macchina (o di dominio), quindi scegli ciò che ti serve. Se non vuoi utilizzare un prompt dei comandi (oltre quanto già fatto per utilizzare il mio batch), dovrai chiudere ogni applicazione Office (e riaprirne una qualsiasi dopo la modifica) se vuoi accertarti che l’obiettivo sia stato centrato.

Maggiori informazioni (sempre utili) sul rilascio degli aggiornamenti sono disponibili nella documentazione ufficiale di Microsoft, a questi indirizzi: docs.microsoft.com/it-it/DeployOffice/overview-of-update-channels-for-office-365-proplus & docs.microsoft.com/it-it/officeupdates/release-notes-office365-proplus.

In via ufficiale: OfficeC2RClient.exe

Volendo operare per vie ufficiali, Microsoft ha da tempo aggiornato il proprio OfficeC2RClient.exe per permetterti di cambiare canale di distribuzione per nuove versioni e aggiornamenti della suite Microsoft Office. Ti spiego molto rapidamente come procedere partendo dallo schema aggiornamenti:

CanaleParametro (da Prompt o Office Deployment Tool)
Canale mensile (Mirato)Channel=Insiders o Channel=FirstReleaseCurrent
Canale mensileChannel=Monthly o Channel=Current
Canale semestrale (Mirato)Channel=Targeted o Channel=FirstReleaseDeferred
Canale semestraleChannel=Broad o Channel=Deferred

Ciò detto, apri un prompt dei comandi con diritti amministrativi, quindi spostati sotto Program Files → Common Files → microsoft shared → ClickToRun (cd \Program Files\Common Files\microsoft shared\ClickToRun). A questo punto dovrai semplicemente lanciare l’eseguibile OfficeC2RClient.exe con il parametro /changesetting Channel=$Canale, dove al posto di $Canale dovrai specificare quello che ti interessa, un esempio pratico:

C:\Program Files\Common Files\microsoft shared\ClickToRun>OfficeC2RClient.exe /changesetting Channel=Monthly

Questa abiliterà il canale di aggiornamento mensile sulla suite Office installata. Per poter scatenare l’operazione di ricerca aggiornamenti nell’immediato ti basterà utilizzare lo stesso eseguibile ma con un parametro diverso:

C:\Program Files\Common Files\microsoft shared\ClickToRun>OfficeC2RClient.exe /update user

Il gioco è fatto, non ti servirà fare null’altro.

Buon lavoro :-)


crediti: erwinbierens.com/switch-office-2016-to-monthly-targeted-channel

Condividi l'articolo con i tuoi contatti:

Di NotifyKace ne abbiamo già parlato un paio di volte in passato. Tutto è nato da una migrazione dell’appliance e relativa necessità di verificare che gli agent fossero correttamente installati e comunicanti con essa. Nel frattempo NotifyKace è cresciuto, si è evoluto e ha dato maggiori informazioni, permettendomi anche di richiamarlo facilmente in fase di login al dominio (inizialmente) o GPO (oggi). Ti racconto le ultime novità introdotte, così che anche tu possa sostituirlo a quello che forse hai in uso attualmente, ammesso che calzi a pennello la nuova soluzione adottata.

Kace: una rispolverata a NotifyKace.vbs (0.5) e uso delle GPO

Parti dalle basi

Se non hai idea di cosa sto parlando, ti invito a leggere l’articolo originale scritto un anno fa circa, è ancora valido e ti insegna alcuni trucchi per gestire i tuoi agenti Quest Kace, tutto sommato è ciò su cui baso lo sviluppo di NotifyKace:

Kace: un alert in caso di client mancante o inventario troppo vecchio

Ciò detto

Si può passare alla nuova versione dello script VBS, arrivata alla 0.5, che integra una funzione per l’invio della mail di allerta, un nuovo controllo riguardo l’esistenza del database di inventario e la rimozione delle esclusioni hostname perché oggi, a differenza di ieri, uso una GPO per arrivare direttamente sulle macchine interessate, lo script non viene quindi eseguito su endpoint che non devono avere l’agente Quest a bordo.

Il tutto si traduce con questo:

Della GPO per l’esecuzione programmata ne parliamo tra poco, nel frattempo i passaggi che più possono interessarti sono quelli relativi all’invio della comunicazione (a mezzo a posta elettronica), ora eseguito tramite funzione dedicata Call MailtoKacelog(Destination, DestinationCC, DestinationBCC, MailBody, Subject) e la verifica dell’esistenza del file di inventario (che puoi rinominare temporaneamente per verificare che lo script funzioni in maniera corretta):

'Test esistenza %ProgramData%\Quest\Kace\kinventory.db
If (oFSO.FileExists(sDirectoryPath & "\kinventory.db")) Then
'MsgBox("Debug: kinventory.db found " & strComputerName)

Il MsgBox commentato è lasciato lì volutamente nel caso in cui tu volessi vedere a video un popup di debug a conferma dell’esistenza del file; in uno script di produzione non ha invece senso lasciarlo senza commento. Ciò detto, null’altro cambia ma rimane più snello e pulito, con il rilevamento di indirizzo IP e ulteriori dettagli integrati nella funzione di MailtoKacelog.

Esecuzione programmata

Che poi è un po’ il succo del discorso che più cambia rispetto al passato. L’evoluzione della verifica consiste nella sua “rimozione” dalla fase di login, portandola invece all’interno dell’Utilità di pianificazione di Windows. L’operazione è costituita da due passaggi: il primo ti permetterà di copiare il file dello script all’interno dei tuoi PC, il secondo consisterà nell’inserimento dell’operazione programmata, che potrà essere poi eseguita secondo tue esigenze.

Copia del file

Crea una nuova GPO (o modificane una esistente che riguarda Kace) e naviga in Computer ConfigurationPreferences Windows SettingsFiles → Aggiungi un file da copiare sulla destinazione (che equivale al PC raggiunto dalla GPO), è qui che dovrai dirgli dove andare a recuperare il file VBS e in che cartella finale copiarlo. Ti propongo il riassunto catturato dalla GPO che stiamo attualmente utilizzando:

Kace: una rispolverata a NotifyKace.vbs (0.5) e uso delle GPO 1

Il file NotifyKace.vbs si trova in una share di rete raggiungibile da ogni nostro PC, verrà quindi copiato all’interno della cartella %ProgramData%\Quest, destinazione già presente sulle macchine proprio perché creata e quotidianamente utilizzata dall’agente Quest. Da qui si potrà certamente eseguire manualmente il controllo, oppure procedere con la seconda parte, quella della programmazione dell’operazione automatica.

Operazione programmata tramite Utilità di pianificazione

La seconda parte della GPO è quella che puoi creare e mettere in funzione navigando Computer ConfigurationPreferences Windows SettingsControl Panel SettingsScheduled Tasks → Crea un nuovo Scheduled Task (At least Windows 7) chiamato come meglio credi (nel mio caso è KACE check) e fagli eseguire un programma, puntandolo ovviamente a %ProgramData%\Quest\NotifyKace.vbs con i privilegi elevati e l’attivazione quotidiana all’orario che preferisci (nel mio caso le 12:00):

Kace: una rispolverata a NotifyKace.vbs (0.5) e uso delle GPO 2

In conclusione

Salvo errori, la configurazione del tuo nuovo controllo è terminata. Applica la GPO alle unità organizzative che contengono i PC del tuo dominio, attendi quindi che questa si propaghi e che inizi a svolgere il suo mestiere. Fai qualche test su macchine non in produzione, accertati che tutto funzioni correttamente, gioca con il file di inventario (magari rinominandolo in modo da non farlo rilevare al VBS e farti inviare così la mail di allerta per database non trovato), poi procedi con tutto il resto del parco macchine.

In caso di dubbi o anomalie, l’area commenti è a tua totale disposizione.

Buon lavoro :-)

Condividi l'articolo con i tuoi contatti:

Tu intervieni mettendo a posto un problema davvero molto banale ma che –se lasciato irrisolto– risulta essere alquanto fastidioso. Il problema sembra dipendere da una chiave di registro che in alcuni casi viene toccata e modificata da prodotti di terze parti, intervento che di per sé non è catastrofico, più che altro sgradito ed evitabile.

Se Windows decide di aprire una finestra di Esplora Risorse all'avvio 1

Ho trovato diversi thread in merito nel forum della Community di Microsoft, uno in particolare è quello che ha acceso la lampadina risolvendo poi “l’arcano mistero“, lo trovi anche tu all’indirizzo answers.microsoft.com/en-us/windows/forum/windows_10-files-winpc/file-explorer-opening-on-startup-in-win10/0abb4e16-747f-4f2d-ab2a-81c2e88d76f9, è quello di Fernando Valdivia (9/7/2017 3:19:54 AM, in pagina 2):

Se Windows decide di aprire una finestra di Esplora Risorse all'avvio

Si tratta in pratica di andare a controllare la chiave di registro HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon accertandosi che il valore Userinit corrisponda al classico C:\Windows\system32\userinit.exe o, se si tratta di un client sul quale è installato l’agente Quest Kace (come nel mio caso), che contenga allora C:\Windows\system32\KUsrInit.exe. Se all’interno del valore tu dovessi trovare la somma dei due casi, uno dei due ospiti diventa automaticamente sgradito e colpevole dell’apertura della finestra Esplora Risorse (senza che tu l’abbia chiesta) dopo l’accesso al sistema. Ti basterà ripristinare il corretto valore di chiave per tornare a vivere sereno (e senza la seccatura di dover chiudere finestre non desiderate).

Buon lavoro.

×

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!
Condividi l'articolo con i tuoi contatti:

TeamViewer è uno strumento tutto sommato fantastico e universalmente riconosciuto per essere un giusto partner nell’assistenza remota verso PC diversamente non raggiungibili. In passato brillante per il suo modo di saltare a piè pari le limitazioni imposte dai firewall o dai NAT di rete, oggi cerca di fare bella mostra di sé per alcune finezze e servizi accessori (come la giovane assistenza remota su iOS 11+) che conquistano altre fette di mercato.

Kace: TeamViewer Remote Host Switch 3

TeamViewer è anche lo strumento utilizzato per fare assistenza remota in ufficio e, nel corso del tempo, ho costruito una serie di script che mi hanno facilitato la vita nella gestione delle sue autorizzazioni e comportamenti. Attivazione o disattivazione del popup di conferma al collegamento da parte dell’utente finale, blocco o sblocco (quindi disattivazione o attivazione) della creazione password a video (quella specificata sotto il tuo ID), possibilità di inibire il collegamento via internet lasciando solo quello da rete locale. Un piccolo coltellino svizzero in VBS, da richiamare comodamente da riga di comando in base alle esigenze.

Qualche giorno fa ho “tradotto” uno di quegli script in istruzioni per Kace. In particolare parlo dello script che abilita o disabilita l’accesso con conferma al TeamViewer di qualsiasi macchina (x86/x64) controllata all’interno del dominio / parco macchine gestito da Kace. Se la conferma di accesso è abilitata la disabilita, diversamente la abilita.

Lo script

Eseguito come Local System, si basa su due Task, si tratta rispettivamente di quello per un sistema installato a 64 bit, l’altro a 32. Basta controllare se esiste una chiave di registro partendo dalle voci di registro x64 (le Wow6432Node) e variare un valore in base alla condizione attuale, quindi passare al Task 2 nel caso si avesse a che fare con un Windows x86, a 32 bit.

Ti riporto qui di seguito i passaggi che ho salvato nel mio script.

Task 1

Verify

Verifica che la chiave di registro HKLM\SOFTWARE\Wow6432Node\TeamViewer\AccessControl esista, e che il valore AC_Server_AccessControlType sia impostato a 3 (il popup di conferma al collegamento remoto, che compare a video dell’utente finale quando ci si è autenticati dall’altro lato), tradotto quindi con:

Verify that HKLM\SOFTWARE\Wow6432Node\TeamViewer\AccessControl!AC_Server_AccessControlType is equal to “3”

Kace: TeamViewer Remote Host Switch

On Success

In caso di successo, dovrai terminare il processo relativo al servizio di TeamViewer, il client di TeamViewer stesso e modificare quel valore di chiave prima di poter riavviare il servizio di TeamViewer. Tradotto, si ottiene quindi:

Kill the process “TeamViewer_Service.exe”
Kill the process “TeamViewer.exe”
Set “HKLM\SOFTWARE\Wow6432Node\TeamViewer\AccessControl!AC_Server_AccessControlType” to “0”
Restart service “TeamViewer”

Dove lo 0 equivale a un lasciapassare che non richiede conferma alcuna da parte dell’utente finale, in pratica si va a emulare quella condizione di limbo (che permette la connessione senza conferma) di quando ci si trova nella schermata di login di Windows (CTRL+ALT+CANC).

Remediation

La Remediation serve come faultback, permettendoti quindi di riportare la situazione allo stadio precedente, perché il primo passaggio (quello di Verify, nda) ha evidentemente rilevato che il valore di AC_Server_AccessControlType era impostato su qualcosa di diverso dal 3. Quindi non farai altro che terminare il processo relativo al servizio di TeamViewer, il client di TeamViewer stesso e ritoccare quel valore di chiave prima di poter riavviare il servizio dell’applicazione. Traduco:

Kill the process “TeamViewer_Service.exe”
Kill the process “TeamViewer.exe”
Set “HKLM\SOFTWARE\Wow6432Node\TeamViewer\AccessControl!AC_Server_AccessControlType” to “3”
Restart service “TeamViewer”

Kace: TeamViewer Remote Host Switch 1

La procedura su sistemi a 64 bit è completa. Salvo errori, questa parte sarà già funzionante, a prescindere dallo stato d’uscita dello script in console (potrebbe anche dirti di aver fallito, ma mente, dall’altro lato la modifica è stata eseguita e potrai metterla subito alla prova).

Task 2

Verify

Non pensare che io lo faccia apposta, ma nulla cambia rispetto a prima. Il Task 2 serve esclusivamente nel caso in cui il primo fallisca, perché evidentemente non ci si trova davanti a una installazione di Windows a 64 bit. Questo primo passaggio pensa perciò a verificare che la chiave di registro HKLM\SOFTWARE\TeamViewer\AccessControl esista, e che il valore AC_Server_AccessControlType sia impostato a 3 (il popup di conferma al collegamento remoto, che compare a video dell’utente finale quando ci si è autenticati dall’altro lato), tradotto quindi con:

Verify that “HKLM\SOFTWARE\TeamViewer\AccessControl!AC_Server_AccessControlType” is equal to “3”

On Success

Anche in questo caso, se la ricerca ha successo, dovrai terminare il processo relativo al servizio di TeamViewer, il client di TeamViewer stesso e modificare quel valore di chiave prima di poter riavviare il servizio di TeamViewer. Tradotto, si ottiene quindi:

Kill the process “TeamViewer_Service.exe”
Kill the process “TeamViewer.exe”
Set “HKLM\SOFTWARE\TeamViewer\AccessControl!AC_Server_AccessControlType” to “0”
Restart service “TeamViewer”

Remediation

Con la Remedetion chiudi il cerchio e anche le operazioni di ambo i Task, riportando la situazione a quella considerata standard, prevedendo che sia l’utente a darti l’autorizzazione al collegamento al suo PC, senza che tu possa entrarci senza controllo alcuno:

Kill the process “TeamViewer_Service.exe”
Kill the process “TeamViewer.exe”
Set “HKLM\SOFTWARE\TeamViewer\AccessControl!AC_Server_AccessControlType” to “3"
Restart service “TeamViewer”

Lo script è utile per casi di emergenza nel caso in cui tu stia lavorando sul PC dell’utente senza presidio dall’altro lato (tipicamente quando ti lascia a fare il tuo lavoro e si allontana per una pausa, un tempo variabile non sempre ben definito), e tu ne perda il controllo per un qualsivoglia motivo, chiudendoti quindi la porta alle spalle (e senza le chiavi di casa). Non andrebbe mai utilizzato come passe-partout all’insaputa dell’utente.

Buon lavoro.

Condividi l'articolo con i tuoi contatti: