get-content lista.txt | %{$a = $_;try{[net.dns]::GetHostByAddress($a)}catch{$a}}
PD: $a es declarado porque $_ devuelve el error completo.
Windows User Group San Juan - Argentina ...preocupate, lo hacemos por trabajo :(
get-content lista.txt | %{$a = $_;try{[net.dns]::GetHostByAddress($a)}catch{$a}}
Function InfoExtraScriptCorreo {#region intro_funcion #nombre : InfoExtraScriptCorreo #descripcion: Insertar como tabla info extra en los correos. Salida como String(html) #fecha creac: xx/xx/13 #versión : 0.1 (07/08/13) #autor : Jorge Mestre #Changelog : 07/08/13 - creado #endregion intro_funcion #region css_tabla [string]$csstabla = "<style>" $csstabla = $csstabla + "TABLE{font-family:Arial,Helvetica,sans-serif;border-spacing:1px;` border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}" $csstabla = $csstabla + "TH{white-space: nowrap;border-spacing:1px;font-size:8pt;` border-width: 1px;padding: 1px;border-style: solid;border-color: black;` background-color:#E0EC0F}" $csstabla = $csstabla + "TD{white-space: nowrap;border-spacing:1px;font-size:8pt;` border-width: 1px;padding: 1px;border-style: solid;border-color: black;}" $csstabla = $csstabla + "</style>" #endregion css_tabla $t = "" | Select-Object script,host,working_dir,usuario $t.script = $MyInvocation.PSCommandPath $t.host = [System.Environment]::MachineName $t.working_dir = [System.Environment]::CurrentDirectory $t.usuario = [System.Environment]::UserName [string]$salida = $t | convertto-html -Head $csstabla -As LIST return '<html><body><style>p {font-family:Arial,Helvetica,sans-serif;font-size:8pt}` </style><p> <p> <p> <p>Información extra:</body></html>'+$salida }
$cadena = 'FG?'
#Obtener los códigos ASCII [int[]][char[]]$cadena
70
71
65533
? debería ser una Ñ, que es:
PS C:\> [int][char]"Ñ"
209
Recreando la cadena con el código correcto, recuperamos la Ñ:
el 99% de las veces tenemos que tratar los caracteres con la tabla correspondiente (UTF8, ASCII, etc), pero cuando el tema se pone duro, "las cosas a la vieja usanza" :)
function Reemplazar-Caracter { Param ( [parameter(Mandatory=$true)][string][ValidateNotNullOrEmpty()]$txt,` [parameter(Mandatory=$true)][int][ValidateNotNullOrEmpty()]$CarAnt,` [parameter(Mandatory=$true)][int][ValidateNotNullOrEmpty()]$CarNuevo ) Write-Host -ForegroundColor green $txt Write-Host -ForegroundColor cyan $([int[]][char[]]$txt) [string]$txtnuevo = $null foreach ($ascii in ([int[]][char[]]$txt)) { if ($ascii -eq $CarAnt) { $txtnuevo = $txtnuevo + [char]$CarNuevo } else { $txtnuevo = $txtnuevo + [char]$ascii } } return $txtnuevo }
#region intro #descripcion: agregar direccion X500 a todos los contactos de una OU #fecha creac: 04/11/2013 #versión : 0.1 (04/11/13) #autor : Jorge Mestre #Changelog : 04/11/13 - Creado #endregion intro param( $archOrigen,` $ou = 'OU=NomOU,DC=Lab,DC=local' ) Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 -ErrorAction `
SilentlyContinue $ErrorActionPreference = "continue" $LegacyDNRaiz = "/o=FirstExchOrg/ou=Exchange Administrative Group `
(FYDIBOHF23SPDLT)/cn=Recipients/cn=" $contactos = Get-MailContact -OrganizationalUnit $ou foreach ($con in $contactos) { $user = $con.alias $user $con.EmailAddresses += [Microsoft.Exchange.Data.CustomProxyAddress]`
(("X500:"+"$LegacyDNRaiz"+"$user")) Set-MailContact -Identity $con.alias -EmailAddresses $mails.EmailAddresses }
#region intro # nombre : Comprobar-Puertos.ps1 # descripción: comprueba que un host responde a varios puertos # fecha creac: 11/07/2011 # versión : 0.2(15/07/2013) # autor : Jorge Mestre # Changelog : 11/07/2011 - creado # Changelog : 15/07/2013 - Agregado param $infinito #keywords : puertos,comprobar,telnet #endregion intro param($puertos,$dst,[switch]$infinito,$tamLog) if ( ((-not $puertos) -or (-not $dst)) -or ` (($infinito) -and (-not $tamLog))) { Write-Host "faltan argumentos`nEj: .\comprobar-puertos.ps1 -dst `"server`" ` -puertos 80,81,9000 [-infinito -tamLog MB]" -ForegroundColor Yellow exit } #region MODIFICAR $ArchLog = ".\LogPuertos.log" $LimTamArchLog = $tamLog # MBs $intervalo = 5 # segundos #EndRegion MODIFICAR #Region Funciones function RevisarTamLog($ArchLog) { $tamArch = ((Get-Item $ArchLog).length)/1mb | Out-Null if ($TamArch -gt $LimTamArchLog) { rm $ArchLog } } function eLog($texto) { $fecha = get-date -F "dd/MM/yyyy - hh:mm:ss" $txt = "$fecha`: puerto $puerto en $dst $texto" Write-Host $txt $txt | Out-File -Encoding utf8 -delimiter ';' -Append $ArchLog } function comprobarPuertos { RevisarTamLog $ArchLog foreach ($puerto in $puertos) { try { $socket = new-object Net.Sockets.TcpClient $socket.Connect($dst, $puerto) $socket.Close() eLog "abierto" } catch { eLog "cerrado" } $socket = $null } } #EndRegion Funciones #Region principal if (-not $infinito) { comprobarPuertos } else { while (1 -eq 1) { comprobarPuertos sleep $intervalo } } #EndRegion principal