Powershell: importare record DNS da file CSV

Script per importare record A e Cname nel DNS da un file CSV

Esempio di file CSV:
HostName,RecordType,IPAddress
server01,a,192.168.1.1
Service01,cname,server4.mydomain.com

Script

<# CSV example
HostName,RecordType,IPAddress
server01,a,192.168.1.1
Service01,cname,server4.mydomain.com
#>

$CSV = Read-Host "CSV to import:"
$Zone = Read-Host "Zone Name:"
Import-CSV $CSV |
%{
if ($_.RecordType -eq "a") {Add-DnsServerResourceRecordA -Name $_.HostName -ZoneName $zone -IPv4Address $_.IPAddress} 
elseif ($_.RecordType -eq "cname")  {Add-DnsServerResourceRecordCName -Name $_.HostName -ZoneName $zone -HostNameAlias $_.IPAddress}
}

 

Tavoletta grafica Wacom Intuos e Lightroom: lag con gli slider

Utilizzando la tavoletta grafica Wacom Intuos su Lightroom su Windows 10, gli slider di regolazione rispondono con un certo ritardo. Ovvero, dal momento che vengono selezionati e “mossi” dalla penna, prima che rispondano al comando passano circa 2 secondi.

Nessun problema invece in Camera Raw e/o Photoshop: il sistema risponde correttamente.

Per risolvere il problema, ho disattivato l’opzione “Windows Link” dal software di gestione della tavoletta solo per l’utilizzo con Lightroom.

Trust relationship failed between Workstation and Domain senza rejoin o reboot

Per fixare questo errore Microsoft consiglia di reijoinare la macchina al dominio (fonte)

E’ possibile risolvere il problema senza effettuare il rejoin al domino e/o il reboot della macchina utilizzando il tool Netdom da CLI o tramite il cmdlet Reset-ComputerMachinePassword da Powershell.

Tramite “NETDOM”

Eseguire il login al macchina con credenziali locali ed eseguire il comando sotto da CLI:

Netdom resetpwd /Server:DomainController /UserD:Administrator /PasswordD:Password

Dove
server: nome del Domain Controller
UserD: utenza di dominio
Password: password dell’utenza di dominio

Effettuare il logout ed accedere alla macchina con credenziali di dominio

Info su NETDOM a questo LINK

Tramite Reset-ComputerMachinePassword

Eseguire il login al macchina con credenziali locali ed eseguire il comando sotto da Powershell:

Reset-ComputerMachinePassword -Server DomainController -Credential Domain\Admin

Effettuare il logout ed accedere alla macchina con credenziali di dominio

Info sul comando Reset-ComputerMachinePassword a questo LINK

Powershell Export And Import Relying Party Trust Claim Rules

Script per esportare, esportare ed importare o importare soltanto le claim AD FS.

 

Add-PSSnapin "Microsoft.ADFS.PowerShell" -ErrorAction SilentlyContinue
$select = Write-Host "Select operation:  (1)Export; (2) Export and Import; (3) Import "
$XMLFilePath = "RPTClaim.xml"

function show-menu 
{
    cls
    Write-Host "==========Export Import AD FS Claim=========="
    Write-Host "Press '1' for Export"
    Write-Host "Press '2' for Export and Import"
    Write-Host "Press '3' for Import"
}

function export
{
    $SourceRelyingPartyTrust = Read-Host "Source Relying Party Trust" #Display Name of Source Relying Party Trust
    Get-ADFSRelyingPartyTrust -Name $SourceRelyingPartyTrust | Export-Clixml $XMLFilePath
    Write-Host "Relying Party Trust Claim Rules Exported"
}

function import{
    $TargetRelyingPartyTrust = Read-Host "Target Relying Party Trust" #Display Name of Target Relying Party Trust
    Import-Clixml $XMLFilePath | foreach-object {Set-ADFSRelyingPartyTrust -TargetName $TargetRelyingPartyTrust -IssuanceTransformRules $_.IssuanceTransformRules}
    Write-Host "Relying Party Trust Claim Rules Imported"
}

function export-import
{
export
import
}


show-menu
$input = Read-Host "Please make a selection "
switch ($input)
{
    '1' 
    {
        cls
        export
    }
    '2'
    {
        cls
        export-import
    }
    '3'
    {
        cls
        import
    }
}

 

Disclaimer: nessuna garanzia è fornita con questo script. Lo scrivente non è responsabile di qualunque danno possa eventualmente derivarne – lo utilizzate a vostro rischio.

Powershell: ottenere tutti i Domain Controller della foresta

Il seguente comando fornisce:

  • Lista di tutti i Domain Controller configurati nella foresta
  • Foresta e dominio di appartenenza
  • Indirizzo IP
  • Site
(Get-ADForest).Domains | % { Get-ADDomainController -Discover -DomainName  $_ } | % { Get-ADDomainController -server $_.Name -filter * } | Select Name, Domain, Forest, IPv4Address, Site | ft

Windows: creare un file “vuoto” con dimensioni specifiche

Può essere utile avere dei file “vuoti” di dimensione specifica per eseguire dei test.

Su sistemi Windows, è possibile utilizzare il tool fsutil:

fsutil file createnew nomefile byte_size

 

Esempio 1: creare un file da 1 Megabyte:

fsutil file createnew c:\temp\%I-1MB_file.txt 1048576

Esempio 2: creare 10 file da 1 MB

for /L %I in (1,1,10) do fsutil file createnew c:\temp\%I-1MB_file_test.bin 1048576


Per approfondimenti sul tool FSUtil: https://ss64.com/nt/fsutil.html

Creare una nuova VM (clone) da un checkpoint in Hyper-V

Mi è stata fatta una richiesta di poter creare una nuova VM partendo da un checkpoint in Hyper-V, in pratica la creazione di un clone.

Non è presente in Hyper-V una funzione dedicata, ma è necessario utilizzare le funzioni di import ed export.

Dalla console di Hyper-V:

  • selezionare il check point dal quale si vuole creare il clone

    Hyper-V export checkpoint

  • tasto destro —> Export e seguire il wizard

Una volta esportata la VM, procedere con il wizard di import.

La nuova macchina virtuale verrà creata di default con il nome composto dal nome della macchina sorgente più la data di creazione.

Hyper-V import

Nel caso si voglia assegnare un nome differente occorre andare ad editare il file XML di configurazione della macchina nel percorso <path-export>\nome.macchina\virtual machines\file.xml. 

Cercare la stringa <name type=string> name.VM </name> e sostituire il nome della macchina con quello desiderato.

NOTA: nel caso la VM sia stata esportata da Hyper-V in Windows 2016 o Windows 10, i file XML non saranno presenti (i file di configurazione ora sono binari con estensione VMCX). Nel caso si vogliano editare i file VMCX, fare riferimento all’articolo scritto da Ben Armostrong.

 

Eseguire il merge di più file VMDK in uno singolo

Con l’utility vmware-vdiskmanager è possibile fare il merge di più file VMDK in uno singolo.
Il tool è scaricabile da questo LINK.
Oppure, se è installato VMWare Fusion o Workstation è presente nella directory di installazione del software. Non è disponibile in VMWare Player.

La sequenza dei file che compongono il disco virtuale deve essere del tipo
disk.vmdk
disk-s001.vmdk
disk-s002.vmdk
disk-s003.vmdk

Da una command line, dovrà essere eseguito il seguente comando:

vmware-diskmanager.exe -r -t 0 source-name.vmdk destination-name.vmdk

Attendere il completamento dell’operazione.

Merge vmdk in progress

Merge vmdk in progress

 

Eseguire le Microsoft Management Console (MMC) con Runas

Si ha l’esigenza, molte volte, di dover aprire le MMC (ad esempio i tools per la gestione di Active Directory) con credenziali differenti rispetto al dominio di appartenenza. Occorre quindi utilizzare il comando Runas con lo switch netonly.

Il comando, per esempio, per eseguire la MMC di Active Directory Users and Computers è:

runas.exe /netonly /user:user@domain.local "mmc %SystemRoot%\system32\dsa.msc /domain=domain.local /server:server"

Ho configurato uno script in Powershell con le MMC di Active Directory Management Tools:

function Show-Menu
{
     param (
           [string]$Title = 'Runas_MMC.ps1'
     )
     cls
     Write-Host "================ $Title ================"
     
     Write-Host "1: Press '1' for Active Directory Users and Computers."
     Write-Host "2: Press '2' for Active Directory Sites and Services."
     Write-Host "3: Press '3' for Active Directory Domain and Trusts."
     Write-Host "4: Press '4' for ADSI Edit."
     Write-Host "Q: Press 'Q' to quit."
}

do
{
     Show-Menu
     $input = Read-Host "Please make a selection"
     $server = Read-Host "Server"
     $user = Read-Host "Domain\User"
     switch ($input)
     {
           '1' {
                cls
                runas.exe /netonly /user:"$user" "mmc c:\windows\system32\dsa.msc /server=$server"
           } 
           '2' {
                cls
                runas.exe /netonly /user:"$user" "mmc c:\windows\system32\dssite.msc /server=$server"
           } 
           '3' {
                cls
                runas.exe /netonly /user:"$user" "mmc c:\windows\system32\domain.msc /server=$server"
           } 
           '4' {
                cls
                runas.exe /netonly /user:"$user" "mmc c:\windows\system32\adsiedit.msc /server=$server"
           }
           'Q' {
                return
           }
     }
     pause
}
until ($input -eq 'q')

Esecuzione dello script

E’ possibile modificare lo script aggiungendo o eliminando le varie console.

Disclaimer: Nessuna garanzia è fornita con questo script. Lo scrivente non è responsabile di qualunque danno possa eventualmente derivarne – lo utilizzate a vostro rischio.

WSUS – Event ID 12002, 12012, 7032, 7053

Aprendo la console del WSUS viene visualizzato un errore di connessione come quello in figura:

Nell’Event Viewer, ciclicamente vengono riportati gli eventi 12002, 12012, 7032 e 7053.

Inutili, nel mio caso, effettuare

Per risolvere la situazione senza dover reinstallare l’ambiente:

  • Aprire una command line con privilegi amministrativi
  • Posizionarsi nel percorso “C:\Program Files\Update Services\Tools”
  • Eseguire il comando Wsusutil.exe postinstall /servicing
  • Riavviare il server