Modifica ricorsiva estensione files - powershell


ls -r  "C:\Users\mio\Desktop\file dump telefono" |
    ? { -not $_.PSIsContainer } |
    ren -Path { $_.FullName } -NewName { "$($_.BaseName).$($_.Extension[estensione che vuoi mettere])" } -WhatIf

Gestione - Avvio servizi con powershell


Con questo semplice comando seleziono i servizi che contengono il nome "exch" (come Exchnage) e avvio il servizio.

Get-Service | Where-Object {$_.name -match "exch"} | Start-Service

Powershell - selezionare oggetti da un output


per selezionare (visualizzare) solo una parte di un elenco di oggetti si puo usare il comando

Where-Object
Get-ChildItem | Where-Object {$_.mode -match "s"}

il parametro $_.mode seleziona la proprietà da cui scegliere.

è altresi possibile usare il comando

format-list -Property mode
in questo caso pero non selezione effettivamente un oggetto ma ne limito la visualizzazione nell'output

------------------
 
se invece non vogliamo lavorare a livello di oggetto ma solo cercare del testo possiamo usare il comando
Select-String

Creazione ricorsiva cartelle con PowerShelll


Get-ChildItem c:\tmp |
Where-Object {$_.PSIsContainer}|
ForEach-Object {new-item  -name GesOff -type directory -path $_.fullname -WhatIf -ErrorAction SilentlyContinue
}

Citrix Receiver - pass-thru Auth non appare tra le opzioni




se la pass-thru Auth non appare tra le opzioni non compare tra le opzioni di citrix receiver il problema si puo risolvere con questa chiave di registro.



Condivisione stampanti via script

Questo script (VBS) permette di confividere TUTTE le stamapnti di un pc, tranne quelle di rete, e assegna il nome della condivisione uguale al nome stampante.
è possibile intervenire su questa riga "  objPrinter.ShareName = "" & objPrinter.Name"  e modificarla con "
 objPrinter.ShareName = "Printer" & i " per avere un nome progressivo.
 
 
================================== 


strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Network = FALSE")
i = 1
For Each objPrinter in colInstalledPrinters
    objPrinter.Shared = TRUE
    objPrinter.ShareName = "" & objPrinter.Name
    objPrinter.Put_
    i = i + 1
Next

Citrix Xendesktop - prestart number of VM

Le macchine che vengono pre-avviate su xen desktop di defaul su xendesktop usano un parametro fisso, ovvero su puo decidere quante macchine sono di defaul inizialmente avviate ma non tiene conto del numero di macchine effetivamente usate.

Per risolvere questo problema si puo lanciare un comando per trasformare in valore percentuale il numero di VM pre-avviate.



Configurazione Stampante locale via script

Configurazione Stampante locale via script.
questo script assume che:
 - il driver richiesto sia già installato sul pc locale, e quindi visibile dalle proprietà server di stampa
 - le policy di dominio non blocchino l'installazione di driver non firmati
 - si deve essere amministratori del pc
 - è stato testato su win xp
 - il comando ping serve per guadagnare tempo durante l'esecuzione dello script e permettere eventuali operazioni in background (come la creazione dell porte si stampa)
 - la guida completa al comando si trova in fondo.


Comandi di stampa Unix

Questo elenco di comandi permettono di utilizzare i servizi di stampa unix installati su un client windows xp (o win 7)


questo comando lancia la stampa del file test.txt  sulla stampante test che si trva sul print server con quell' ip
lpr -S172.25.11.87 -Ptest c:\test.txt

Questo comando invece verifica lo stato della coda
lpq -S172.25.11.87 -Ptest



Script modifica porta stampante

Per modificare in automatico una porta di una stampante partendo dal suo nome è possibile utiliizare questo semplice script.

Salvare come .vbs

In questo caso verranno selezionate tutte le stampanti che contengono la parola "test" e "pippo" e verranno reindirizzate verso la lpt1.
Se vogliamo selezionare il nome esatto e non il nome contenuto possiamo usare la stringa  DeviceID='test' al posto di DeviceID like '%test%'"


Riavvio veloce Windows Server

Può capitare che il riavvio di una macchina Windows server sia particolarmente lenta in particolare se si tratta di un SBS o se è installata una funzionalità Sql o Exchange.
Una semplice soluzione del problema può essere quella di stoppare i servizi di vari applicativi prima di lanciare il comando di spegnimento o riavvio con un semplice file batch è.
Creare un file .bat e fare copia incolla del testo qui sotto.
Attenzione: l'ultima riga se decommentata riavvia il server dopo 5 secondi


Wmi Filter originali


Filtri wmi nativi di windows sbs 2011


Windows SBS Client
select * from Win32_OperatingSystem Where ProductType!=2


Windows SBS Client - Windows 7 and Windows Vista
select * from Win32_OperatingSystem Where Version>='6.0.6002'<br /><br /><strong>Windows SBS Client - Windows XP</strong><br />select * from Win32_OperatingSystem Where (Version>='5.1.2600' and '6.0.6000'>Version and ServicePackMajorVersion>=3) or (Version>='5.2.3790' and '6.0.6000'>Version and ServicePackMajorVersion>=2)


Windows xp
select * from Win32_OperatingSystem Where (Version>='5.1.2600' and '6.0.6000'>Version and ServicePackMajorVersion>=3) or (Version>='5.2.3790' and '6.0.6000'>Version and ServicePackMajorVersion>=2)





Lanciare uno script powershell da file Batch (.bat)


sintassi di esempio per creare un file bach con all'interno uno script powershell:

powershell.exe -ExecutionPolicy unrestricted -file "C:\ScriptPulizia\Scrip_eliminazione_vecchie_cartelle.ps1" >> C:\ScriptPulizia\log.txt

Esempio dello script richiamato

date
echo -
echo -
echo -
echo "cambio cartella e vado ad eseguire pulizia su r:"
cd "r:\"
Get-ChildItem "r:\" | Where-Object { $_.PSIsContainer} | ForEach-Object {Get-ChildItem $_ | Where-Object {$_.PSIsContainer} | Sort-Object -Descending | Select-Object -Skip 4 | Remove-Item -Recurse}
# -WhatIf
echo -
echo -
echo "cambio cartella e vado ad eseguire pulizia su s:"
cd "s:\"
Get-ChildItem "s:\" | Where-Object { $_.PSIsContainer} | ForEach-Object {Get-ChildItem $_ | Where-Object {$_.PSIsContainer} | Sort-Object -Descending | Select-Object -Skip 4 | Remove-Item -Recurse}
# -WhatIf
c:
# ping -n 10 www.tim.it
echo -----------------------------------------------------------------------------
echo -----------------------------------------------------------------------------

Hp esploso - elenco parti


Hp Parts - elenco hardware compatibile per macchine hp.
trovare un'esploso di un servr hp puo essere molto difficoltoso da reperire, si può ovviare utilizzando google : "modello server" + quickspecs:

Creare certificato con più nomi (multiname)


Creare certificato ssl con piu nomi

A volte puo capitere di dover richiedere un certificato valido per piu host o additittura per un intero dominio.
seguire queste guide per raggiungere lo scopo


Modificare Windows Firewall via GPO


A volte è necessario gestire un servizio via GPO.

Nello specifico questo script evidenzia come gestire il servizio windows firewall usando le GPO di AD.

Questa è la configurazione da usare.

; Replace Fierewall Start mode
; Start = 4 (disable), 3 (manual), 2(automatic), 1 (system), 0 (boot)

Class Machine
CATEGORY “Hardware Control”
POLICY “Enable firewall seervices”
KEYNAME “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess”
PART “HW: Windows Firewall” Checkbox
VALUENAME “Start”
VALUEON NUMERIC 4 VALUEOFF “3?
END PART
END POLICY
END CATEGORY

http://www.windowsreference.com/windows-2000/how-to-disable-a-service-or-device-drivers-using-group-policies/

Group Policies are used to apply system and security policies for the client PCs in a Windows Active Directory based Domains. While Group Policies is vast in itself to explain, here is a simple procedure on how to enable/disable a service or a Device driver using Group Policies.



The registry keys that the Group Policy targets to disable the service or the drivers is here

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services]



All the device drivers, services & applications can be found here. I’m disabling my Audio device driver for example in this case.

The Audio driver in my PC is aeaudio.sys and the registry key is

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aeaudio]

In the right-pane, there is a DWORD entry “Start”

The possible values are

“4″ – Disable
“3″ – Manual
“2″ – Automatic
“1″ – System
“0″ – boot

The value “4″ disables the driver. Set the value of the DWORD to “4″ to disable the driver.



Ok. Now, how we do it to multiple client PCs using Group Policies.

Create a new Administrative Template (say sound_dis.adm) with the following

; Replace aeaudio with actual driverkey or service in Registry
; Start = 4 (disable), 3 (manual), 2(automatic), 1 (system), 0 (boot)

Class Machine
CATEGORY “Hardware Control”
POLICY “Disable Soundcard”
KEYNAME “SYSTEM\CurrentControlSet\Services\aeaudio”
PART “HW: Analog Devices (Soundmax)” Checkbox
VALUENAME “Start”
VALUEON NUMERIC 4 VALUEOFF “3″
END PART
END POLICY
END CATEGORY



Once done, import the template in GP snap-in and apply to the group of PCs. The next GP update will disable the registry key on the PCs. Test to see there is no more sound from the system.

Acrobat reader - Full Download


Visto che ogni volta che devo scaricare Acrobat Reader perdo qualche decina di minuti a bisticciare con le pagine di Adobe che vogliono farmi scaricare il Reader tramite il downloader e magari con qualche altro software a corredo tipo Google Toolbar o McAfee Security Scan Plus, mi segno per mia e spero anche vostra utilità un paio di link diretti.
Ed è proprio esplorando l’ftp che si scoprono alcune altarini, si veda ad esempio il link per l’ultima versione localizzata in italiano del reader al momento disponibile la 9.4.0 ftp://ftp.adobe.com/pub/adobe/reader/win/9.x/9.4.0/it_IT/:

articolo tratto da http://blogs.sysadmin.it/ermannog/archive/2010/12/10/acrobat-reader-full-download.aspx

Inventario Hardware/Software di rete


Eseguire un rapido inventario delle macchine collegate in rete è un passo fondamentale per una buona gestione.
Eseguire la cosa a mano puo essere molto dispendiosa in termini di tempo soprattutto quando la rete inizia a salire di dimensioni.
Ecco allora che alcuni sofware vengono in nostro aiuto: gli standalone per inventariare un singolo pc e quelli di rete per gestire client remoti.

STANDOLONE:
Free PC Audit - Sofware molto semplice che non richiede installazione - reportistica solo in .txt
SIW | System Information for Windows : questo softare simile al precedente offre un magiore dettaglio  sulla reportistica e il salvataggio in html - Produttore - Cerca
Andando piu sul sottile ci si puo affidare ai dettagliati (ma anche piu complicati) Sysinternals System Information Utilities - Cerca

INVENTARIO DI RETE:
Lansweeper : Nato da poco promette di imporsi sul mercato.
Spiceworks: Uno dei piu vecchi, famosi e supportati programmi open source
OCSnextinventory : piu limitato ma piu semplice cerca con google
Nmap: il classico per la scansione veloce della rete.
Nessus : nasce come tool di sicurezza ma puo tornare utile per scandagliare la rete dove le normali porte sono coperte da firewall
Solarwind : mai provato ma consigliato da divesi siti (esiste versione free e pro)

Solo a pagamento:

Diversi sofware sono disponibili sul mercato con codice chiuso e solo a pagamento: ma alcuni sono davvero validi e semplici e con la sola demo (trial 15 o 30 gg) possono risolvere molti problemi:
Total Network Inventory :  demo - la versione a pagamneto comprende supporto e aggiornamenti   |demo "allungata"

Ip scan tpc


Per controllare se esistono altri pc in rete possono essere molto utili alcuni sofware gratuiti:
Angry IP Scan - Sito -  Google
Cain e Abel  - Sito
Comando di shell - Net View
Dude - Sito - Google

NetScan - Software free ben curato

Terminal Server - Accesso in console


X collegarsi sulla console principale di terminal server (sol amministrator) digitare da esegui:

mstsc /v:ip_del_server /console

X vista:

mstsc /v:ip_del_server /admin

Funzione pause in powershell

function Pause ($Message="Press any key to continue...")
{
Write-Host -NoNewLine $Message
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Write-Host ""
}

Salvare modifiche e funzioni personalizzate in powershell


Se creiamo funzioni o variabili personalizzate queste svaniscono ad ogni avvio di powershell.
per risolvere possimo seguire questa guida:

Cerca utenti con quote Mailbox non standard



come da titolo: questo script cerca utenti con queote utente non standard.
Get-Mailbox | where-object { $_.ProhibitSendQuota -notmatch "unlimited"}

Comandi fondamentali powershell


Get-help: richiama l'help dei comandi
 - get-help * : richiama l'elenco completo dei comandi
 - esistono 3 tipi findamnetali di comandi:

alias: richiamano altri comandi
cmdlet: sono i comandi veri e propi
helpfile: iniziano tutti con abaut_nomecomando : indicano un file di help
Get-command richiama l'elenco dei comandi

Get-member indica come è strutturato un oggetto in uscita e i suoi paramtri; questo è fondamentale per capire come usare un oggetto con pipeline (es:  get-process | get-member)

SORT :ordina secondo un campo (es: get-process | sort handles)

Disabilitare filtro allegati in Exchange 2007


il comando deve essere lanciato su ogni serevr EDGE.
questa comando disabilita ogni tipo di controllo sugli allegati.
al termine è necessario riavviare il servizio di trasporto edge (oopure il server intero).

Disable-TransportAgent -Identity "Attachment Filtering Agent"



Per riabilitarlo usare il comando Enable

Wsus update

Comando per forzare l'update di un client wsus
 wuauclt.exe /detectnow

Search and Replace

Modificare in maniera ricorsiva e ripetitiva alcuni campi di testo può essere un'operazione molto scomoda soprattutto se deve essere eseguita su decine o centinaia di files.

Ci vengono però in aiuto alcuni strumenti che fanno tutto il lavoro al posto nostro cercando una stringa di testo all'interno di file e sostituendola con un solo clik.
inoltre sono supportate anche le espressioni regolari per affinare le operazioni.

uno dei migliori software gratuiti è textcrawler
altra soluzione interessante è "Advanced Find and Replace" qui la pagina ufficiale

Iniziamo

Questo è il primo post del nuovo blog...
Qualcuno si ricorderà del vecchio sito bonna.tk , oppure di dariobonini.it in ogni caso ora si trova tutto qui...