Ir al contenido principal

Entradas

Mostrando las entradas con la etiqueta powershell

Powershell - Encontrar Controladores de Dominio

Si nuestra computadora está unida a un dominio de Windows, con este código podemos obtener el listado de controladores de dominio en él. Notemos que este código podría darnos un error si no estamos en un dominio. PS> $dominio = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() PS> $dominio.DomainControllers Para encontrar uno, probemos: PS> $dominio.FindDomainController() Y para encontrar todos los controladores de dominio en un bosque: PS> $dominio.Forest.Domains

Parámetros Nombrados En PowerShell

Como Especificar un Parametro con Nombre ( run.ps1 ) param ( [ string ] $ConfigFileName = $ ( throw " parameter required. " ) ) Write-Host  $ConfigFileName Como Invocar otro script indicando el parámetro ( tambien se puede usar desde consola ) $command = " . \r un.ps1 –ConfigFileName ./app.config " Invoke - Expression $command

EventLog desde PowerShell

este pequeño grupo de instrucciones permite mandar eventos al EventLog de windows (el cual podemos consultar usando EventViewer), util para proporcionar información de la ejecución de nuestros scripts. $source = "MySource" #to delete -> [System.Diagnostics.EventLog]::DeleteEventSource($source) #crear el source si no existe if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) {     [System.Diagnostics.EventLog]::CreateEventSource($source, "BwLog")     Write-Host "create source" } #enviar un evento [System.Diagnostics.EventLog]::WriteEntry($source,"mensaje")

Powershell: Función para convertir archivos Word en un directorio a PDF

Para convertir todos los archivos de Word en un directorio a PDF: function   Export-WordToPDF  {    param (   [ Parameter ( Mandatory = $true , ValueFromPipelineByPropertyName = $true )]   [ Alias ( "FullName" )]    $path ,    $pdfpath   =   $null )    process  {      if  ( ! $pdfpath ) {        $pdfpath   =  [ System.IO.Path ]:: ChangeExtension ( $path ,  '.pdf' )     }      $word   =   New-Object   -ComObject   Word.Application      $word . displayAlerts   =   $false          $word . Visible   =   $true      $doc   =   $word . Documents . Open ( $path )      #$doc.TrackRevisions = $false      ...

PowerShell Recorrer Archivos en un Directorio

Otra de las habilidades que necesitamos a la hora de estar escribiendo scripts, es la de recorrer todos los archivos de un directorio y aplicarles algún tratamiento, en este vídeo vamos a aprender una forma de hacer esto en PowerShell. Write-Host ( "El Numero de Argumentos es " + $args.count ) $directorio = $args [ 0 ] foreach ( $item in Get-ChildItem $directorio ) { Write-Host $item }

PowerShell Variables de Entorno

Cuando creamos un script muchas veces tenemos la necesidad de hacerlo flexible, que sea capaz de ejecutarse en múltiples equipos, en entornos que no conocemos, no simplemente crear un flujo fijo, en el que cada detalle debe ser parametrizado para que el script sea utilizable. En el camino de la flexibilidad nos encontramos con una característica que ha estado presente en los sistemas operativos desde el origen de los tiempos, las muy conocidas " Variables de Entorno " que vienen a ser algo asi como "Información del Sistema" que esta disponible para ser consultada. Entre la información que podemos encontrar en las variables de entorno esta la clásica "path", que nos provee una lista de directorios en los cuales el sistema (o interprete de comandos) busca por los archivos ejecutables. tambien podemos encontrar la variable "temp" que nos provee la ruta de la carpeta para almacenar archivos temporales del sistema, asi como otras menos comunes p...

Borrar Archivos Viejos Script de PowerShell

Una de las tareas comunes en la administración de servidores es el hecho de tener que realizar de forma periódica un borrado de archivos de Log, de aplicaciones o de servicios como IIS, por ejemplo una politica puede ser "conservar los archivos de log por 6 dias", asi que tenemos que programar una tarea en el servidor para que cada dia (semana, hora, etc) se ejecute la limpieza. en este post les dejo un script de PowerShell que permite borrar todos los archivos con extensión ".log " en un directorio (y sus subdirectorios), que sean mas viejos que  un numero de dias especificado $pattern = $args [ 0 ] + '\*' $files = Get-ChildItem $pattern - include *. log - Recurse $days = $args [ 2 ] $count = 0 ; $date = Get-Date "Clean Old IIS Log Files Started $date" | Out-File $args [ 1 ] - append - noclobber if ( $files . count - gt 1 ) { foreach ( $file in $files ) { $mark = (( Get-Date ) - $file . Cr...