Mostrando las entradas con la etiqueta SysAdmin. Mostrar todas las entradas
Mostrando las entradas con la etiqueta SysAdmin. Mostrar todas las entradas

comprobar que un host responde a varios puertos

Comprueba y registra el estado de puertos en un host remoto. Útil para detectar cortes si tenemos ofuscadas partes de la red.
 
#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

Directorios con mas de 255 caracteres

Cuando una ruta excede los 255 caracteres, no se puede borrar por limitación del sistema de archivos (permite crear, pero no eliminar). Como no encontré una herramienta, se me ocurrió lo siguiente:

dado 2 carpetas:
d:\carpetaMala
d:\carpetaVacia

robocopy /ZB /MIR d:\carpetaVacia d:\carpetaMala

con esto hacemos un "espejo" de la carpeta Vacia contra la Carpeta con datos erroneos. De ésta manera se eliminan todos los archivos y carpetas (incluyendo los inválidos).

SetAcl - Mas comandos

listar acls de un directorio o archivo:

setacl -ot file -on \\SRV\SHARE -actn list

remover un SID

setacl -on \\SRV\d$\recurso -ot file -actn trustee -trst "n1:S-1-5-21-15;s1:y;ta:remtrst;w:dacl"

Listar impresoras en Active Directory

Para publicar, o republicar todas las impresoras de un servidor en Active directory:
c:\> setprinter.exe \\servidor 7 "dwAction=republish"
asimismo, sirve para publicar (publish) y para despublicar (unpublish)
y tambien se puede especificar una impresora \\servidor\nombreImpresora

mostrar updates instalados en html

wmic es la interfaz de linea de comandos para WMI (Windows Instrumentation Manager). Este comando se puede utilizar normalmente o en modo interactivo (invocandolo sin argumentos)...
en fin,

wmic qfe list full /format:htable >C:\updates.htm

setACL - Limpiando Permisos NTFS

setACL es un comando que nos permite editar ACEs y ACLs en archivos y directorios bajo NTFS. Es muy útil a la hora de "hacer limpieza" de permisos.

Iré posteando a medida que lo vaya necesitando, por ahora, una introducción y mostrar como limpiar la ACL de una carpeta y las ACLs de sus hijos.

la sintáxis del comando es bastante extraña, no se asemeja ni a cmd, ni a un bash, ya que en la mayoria de los casos requiere una opción de acción, y otra opción de operación.

asignar a los administradores permisos full
setacl -on "c:\aaa" -ot file -actn ace -ace "n:administradores;p:full"

asignar a los administradores full y al grupo blabla read & execute
setacl -on "c:\aaa" -ot file -actn ace -ace "n:administradores;p:full" -ace "n:blabla;p:full" (gracias Jordi!)
setacl -on "c:\aaa" -ot file -actn ace -ace "n:administradores;p:full" -ace "n:blabla;p:read_ex"
resetear todos los permisos en los hijos
setacl -on "c:\aaa" -ot file -actn rstchldrn -rst dacl

evitar heredar permisos del padre, asignar permisos especificos y resetear permisos en todos los hijos
setacl -on "c:\aaa" -ot file -actn rstchldrn -rst dacl -actn ace -ace "n:administradores;p:full" -actn setprot -op "dacl:p_nc"