Contenidos
- Introducción
- Software
- Listar software
- Ejemplos
- Listar programas instalados
- Seleccionar el nombre y versión de los programas instalados
- Indicar si hay algún antivirus instalado
- Número de programas instalados
- Agrupar los programas cuyo nombre sea «Microsoft»
- Indicar si está instalado Gimp
- Agrupa los programas cuyo vendedor sea Microsoft
- Indicar el número de programas cuyo nombre sea Microsoft (agrupar)
- Mostrar programas instalados por familia
- Agrupar por familia los programas instalados
- Indicar cuántos programas hay por familia
- Ejercicios
- Ejemplos
- Buscar software
- Instalar software
- Desinstalar software
- Control de aplicaciones
- Listar software
- Actualizaciones
- Listar actualizaciones
- Ejemplos
- Ver el nombre de las actualizaciones
- Ver el ID de las actualizaciones
- Ver si hay una actualización instalada
- Listar por descripción las actualizaciones instaladas en el equipo
- Agrupar actualizaciones por descripción
- Agrupar actualizaciones por descripción y mostrar el nombre de la agrupación
- Listar por fecha las actualizaciones instaladas en el equipo
- Ejemplos
- Listar actualizaciones
- Antivirus
Introducción
El software es la parte intangible (que no se puede tocar) del ordenador, es un elemento lógico y se define como un conjunto de órdenes e instrucciones que al ejecutarse sirven para realizar alguna tarea (los programas sin ejecutar son simples archivos en disco). Con el software se saca partido al ordenador, sin software el ordenador sería un conjunto de placas, tarjetas y cables sin ninguna utilidad.
Los sistemas operativos hay instalados programas por defecto pero también se pueden instalar otros.
El software se puede dividir en tipos:
- Software de sistema. Conjunto de programas que administran los recursos del ordenador.
- Software de programación. Es el conjunto de herramientas que sirven para crear nuevos programas, éstos se crean utilizando un lenguaje de programación. Un lenguaje de programación es un conjunto de símbolos, reglas sintácticas y semánticas que indican cómo hacer un programa. Todas las órdenes o instrucciones que forman el programa se escriben en unos archivos llamados códigos fuente.
- Software de aplicación. Se refiere a los programas que permiten realizar tareas a los usuarios con conocimientos básicos de informática. Les permite sacar provecho al ordenador y así realizar tareas relacionadas con su actividad como, por ejemplo, escribir un documento, enviar un mail, etc.
Software
Cuando se habla de software tenemos que tener en cuenta qué se puede hacer con el mismo:
- Instalar.
- Actualizar.
- Downgrade (devolver el software a una antigua versión).
- Desinstalar.
La instalación y desinstalación de programas es una tarea importante y se tiene que hacer con control, no hay que instalar un programa sin estar seguro de lo que hace, y siempre hay que conocer la fuente de donde proviene el programa.
Los sistemas operativos tienen instalado por defecto multitud de programas que nos permiten realizar gran cantidad de tareas como escribir documentos, escuchar música, navegar por Internet, etc. Sin embargo, esto no es suficiente para la mayoría de los usuarios y es probable que necesiten instalarse nuevos programas como, por ejemplo, un navegador de Internet distinto al que tiene el sistema operativo por defecto, un conjunto de herramientas ofimáticas más completo, etc.
Aunque lo normal es instalar una sola vez un programa, a veces hay algún problema en el programa y es necesario reinstalar algún archivo o el programa entero.
Es importante tener el software correctamente instalado, indentificado y controlar el acceso a los programas por parte de los usuarios.
Las operaciones que se pueden realizar sobre el software son:
Listar software
Cmdlet
1 | Get-Package |
Parámetros y alias de los parámetros para el cmdlet Get-Package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Name {} RequiredVersion {} MinimumVersion {} MaximumVersion {} AllVersions {} Force {} ForceBootstrap {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} ProviderName {Provider} IncludeWindowsInstaller {} IncludeSystemComponent {} AdditionalArguments {} Destination {} ExcludeVersion {} Scope {} SkipDependencies {} PackageManagementProvider {} Type {} AllowClobber {} SkipPublisherCheck {} InstallUpdate {} NoPathUpdate {} |
WMI
1 2 | Get-WmiObject win32_Product Get-WmiObject -query "select name from win32_product" |
Ejemplos
Listar programas instalados
1 2 3 | Get-Package | Select-Object Name (Get-WmiObject -Class Win32_Product).name Get-WmiObject -query "select name from win32_product" | select Name |
Seleccionar el nombre y versión de los programas instalados
1 2 | Get-Package | Select-Object Name, Version (Get-WmiObject -Class Win32_Product) | Select-Object name,version |
Indicar si hay algún antivirus instalado
1 2 | ((Get-Package).name) | Select-String 'Defender' ((Get-WmiObject -Class Win32_Product).name) | Select-String 'Antivirus' |
Número de programas instalados
1 2 | ((Get-Package).name).count ((Get-WmiObject -Class Win32_Product).name).count |
Agrupar los programas cuyo nombre sea «Microsoft»
1 2 | Get-Package | Select-String "Microsoft" | Group-Object (Get-WmiObject -Class Win32_Product) | Select-String "Microsoft" | Group-Object |
Indicar si está instalado Gimp
1 2 | if(((Get-Package).name) | Select-String "Microsoft"){"Instalado"} if(((Get-WmiObject -Class Win32_Product).name) | Select-String "Gimp"){"Instalado"} |
Agrupa los programas cuyo vendedor sea Microsoft
1 | (Get-WmiObject -Class Win32_Product).vendor | Select-String "Microsoft" | Group-Object |
Indicar el número de programas cuyo nombre sea Microsoft (agrupar)
1 2 | ((Get-Package).Name | Select-String "Microsoft" | Group-Object).Count ((Get-WmiObject -Class Win32_Product).vendor | Select-String "Microsoft" | Group-Object).Count |
Mostrar programas instalados por familia
1 | ((Get-WmiObject -Class Win32_Product).name) | %{$_.split(' ')[0]} |
Agrupar por familia los programas instalados
1 | ((Get-WmiObject -Class Win32_Product).name) | %{$_.split(' ')[0]} | Group-Object |
Indicar cuántos programas hay por familia
1 | ((Get-WmiObject -Class Win32_Product).vendor | Group-Object) |
Ejercicios
Crear una función que indique si se ha instalado un programa
1 2 3 4 5 6 | function ProgramaInstalado($programa) { if(((Get-WmiObject -Class Win32_Product).name) | Select-String $programa){"Instalado"} } ProgramaInstalado VMware Player |
Buscar en el registro información sobre programas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $name='Google' $producto=(Get-WmiObject -Class Win32_Product) foreach($uno in $producto) { if($uno.name -match $name) { $valor=$uno.IdentifyingNumber $valor=$valor.replace('{','') $valor=$valor.replace('}','') } } Get-ChildItem hklm:\ -rec -ea SilentlyContinue | % { if($_ -match $valor){$_} } |
Buscar software
Cmdlet
1 | Find-Package |
Parámetros y alias de los parámetros para el cmdlet Find-Package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | IncludeDependencies {} AllVersions {} Source {} Credential {} Proxy {} ProxyCredential {} Name {} RequiredVersion {} MinimumVersion {} MaximumVersion {} Force {} ForceBootstrap {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} ProviderName {Provider} ConfigFile {} SkipValidate {} Headers {} FilterOnTag {} Contains {} AllowPrereleaseVersions {} PackageManagementProvider {} PublishLocation {} ScriptSourceLocation {} ScriptPublishLocation {} Type {} Filter {} Tag {} Includes {} DscResource {} RoleCapability {} Command {} |
Ejemplos
Buscar la herramienta ZoomIt
1 | Find-Package zoomit |
Instalar software
Para instalar programas es necesario controlar el hardware del equipo, el software instalado en el equipo por el tema de incompatibilidades, las versiones y las licencias.
Cmdlet
1 | Install-Package |
Parámetros y alias de los parámetros para el cmdlet Install-Package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | InputObject {} Name {} RequiredVersion {} MinimumVersion {} MaximumVersion {} Source {} Credential {} Proxy {} ProxyCredential {} AllVersions {} Force {} ForceBootstrap {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} WhatIf {wi} Confirm {cf} ProviderName {Provider} IncludeWindowsInstaller {} IncludeSystemComponent {} AdditionalArguments {} ConfigFile {} SkipValidate {} Headers {} FilterOnTag {} Contains {} AllowPrereleaseVersions {} Destination {} ExcludeVersion {} Scope {} SkipDependencies {} PackageManagementProvider {} PublishLocation {} ScriptSourceLocation {} ScriptPublishLocation {} Type {} Filter {} Tag {} Includes {} DscResource {} RoleCapability {} Command {} AllowClobber {} SkipPublisherCheck {} InstallUpdate {} NoPathUpdate {} |
Ejemplo
Instalar software buscándolo previamente
1 | Find-Package zoomit | Install-Package |
Desinstalar software
Cmdlet
1 | Uninstall-Package |
Parámetros y alias de los parámetros para el cmdlet Uninstall-Package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | InputObject {} Name {} RequiredVersion {} MinimumVersion {} MaximumVersion {} AllVersions {} Force {} ForceBootstrap {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} WhatIf {wi} Confirm {cf} ProviderName {Provider} IncludeWindowsInstaller {} IncludeSystemComponent {} AdditionalArguments {} Destination {} ExcludeVersion {} Scope {} SkipDependencies {} PackageManagementProvider {} Type {} AllowClobber {} SkipPublisherCheck {} InstallUpdate {} NoPathUpdate {} |
Ejemplo
Desinstalar software
1 | Uninstall-Package zoomit |
Control de aplicaciones
AppLocker mejora las características de control de aplicaciones y la funcionalidad de las directivas de restricción de software. AppLocker tiene nuevas capacidades y extensiones que le permiten crear reglas para permitir o denegar que las aplicaciones se ejecuten en función de identidades únicas de archivos y especificar qué usuarios o grupos pueden ejecutar dichas aplicaciones.
Con AppLocker, puede:
- Controle los siguientes tipos de aplicaciones: archivos ejecutables (. exe y. com), scripts (. js,. ps1,. vbs,. cmd y. bat), archivos de Windows Installer (. MST,. msi y. msp) y archivos DLL (. dll y. ocx), y aplicaciones empaquetadas y los instaladores de aplicaciones empaquetadas (Appx).
- Defina reglas basadas en atributos de archivo derivados de la firma digital, como el editor, el nombre de producto, el nombre de archivo y la versión de archivo. Por ejemplo, puede crear reglas basadas en el atributo Editor persistente a través de las actualizaciones, o bien puede crear reglas para una versión específica de un archivo.
- Asignar una regla a un grupo de seguridad o a un usuario individual.
- Crear excepciones a ciertas reglas. Por ejemplo, puede crear una regla que permita que se ejecuten todos los procesos de Windows excepto el editor del registro (regedit. exe).
- Usar el modo de solo auditoría para implementar la directiva y ver qué impacto tendría antes de aplicarla.
- Importar y exportar reglas. La importación y la exportación afectan a toda la Directiva. Por ejemplo, si exporta una directiva, se exportan todas las reglas de todas las colecciones de reglas, incluida la configuración de aplicación de las colecciones de reglas. Si importa una directiva, se sobrescriben todos los criterios de la directiva existente.
- Simplificar la creación y la administración de reglas de AppLocker mediante cmdlets de Windows PowerShell.
Cmdlet
1 | Get-AppLockerPolicy |
Parámetros y alias de los parámetros para el cmdlet Get-AppLockerPolicy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Name Aliases ---- ------- Local {} Domain {} Effective {} Ldap {} Xml {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} |
Ejemplo
Obtener y probar una política de AppLocker para los ejecutables que haya en System32
Este ejemplo obtiene la política local de AppLocker en la computadora y luego prueba la política usando el cmdlet Test-AppLockerPolicy para probar si el grupo Todos podrá ejecutar los archivos .exe en C: \Windows\System32.
1 | Get-AppLockerPolicy -Local | Test-AppLockerPolicy -Path C:\Windows\System32\*.exe -User Todos |
Actualizaciones
Cada día aparecen nuevas vulnerabilidades en los sistemas operativos y en los programas, es importante mantener el sistema operativo actualizado con los últimos parches de seguridad.
Las actualizaciones sirven para evitar problemas o corregirlos, de esta forma el sistema operativo se mantiene seguro. Las actualizaciones son necesarias para los sistemas operativos.
Los sistemas de gestión de actualizaciones permiten que éstas se descarguen y se instalen con orden, de no ser así podrían aparecer problemas si el sistema operativo comenzara a descargar todas las actualizaciones a la vez, en algunos casos pueden llegar a saturar ciertos recursos como, por ejemplo, la conexión de red. Para resolver este problema algunos sistemas operativos tienen programas que descargan las actualizaciones y las envían a otros ordenadores a la red de una manera ordenada.
Gracias a los sistemas de actualizaciones, el tiempo que va desde que se registra un fallo hasta que se corrige es muy pequeño.
Las actualizaciones pueden ser del sistema operativo, de programas, de controladores, etc.
Listar actualizaciones
Cmdlet
1 | Get-HotFix |
Parámetros y alias de los parámetros para el cmdlet Get-HotFix
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Id {HFID} Description {} ComputerName {CN, __Server, IPAddress} Credential {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} |
El cmdlet visto en el apartado anterior también sirve para ver actualizaciones
1 | Get-Package |
Ejemplos
Ver el nombre de las actualizaciones
1 2 | Get-HotFix Get-Package | Select-Object Name | Select-String "Actualización" |
Ver el ID de las actualizaciones
1 | Get-HotFix | Select-Object HotFixID |
Ver si hay una actualización instalada
1 2 | $kb=Read-Host 'NúmeroActualización' ((Get-HotFix).hotfixid | Select-String $kb) |
Listar por descripción las actualizaciones instaladas en el equipo
1 2 | Get-HotFix | Select-Object Description (Get-HotFix).Description |
Agrupar actualizaciones por descripción
1 2 | Get-HotFix | Group-Object Description (Get-HotFix).Description | Group-Object |
Agrupar actualizaciones por descripción y mostrar el nombre de la agrupación
1 | (Get-HotFix | Group-Object Description).Name |
Listar por fecha las actualizaciones instaladas en el equipo
1 | Get-HotFix | Sort-Object InstalledOn |
Antivirus
Uno de los programas principales para evitar la propagación de aplicaciones no deseadas es el antivirus.
El antivirus que se utiliza en Windows es Windows Defender.
Examinar el equipo en busca de virus se utiliza el cmdlet
1 | Start-MpScan |
Parámetros y alias de los parámetros para el cmdlet Start-MpScan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ScanPath {} ScanType {} CimSession {Session} ThrottleLimit {} AsJob {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} |
Para ver las últimas definiciones del antivirus se utiliza el cmdlet
1 | (Get-MpThreatCatalog).ThreatName |
Parámetros y alias de los parámetros para el cmdlet Get-MpThreatCatalog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ThreatID {ID} CimSession {Session} ThrottleLimit {} AsJob {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} |
Ejemplos
Ver últimos escaneos
1 2 3 4 | (Get-MpComputerStatus).FullScanEndTime (Get-MpComputerStatus).FullScanStartTime (Get-MpComputerStatus).QuickScanEndTime (Get-MpComputerStatus).QuickScanStartTime |
Última actualización de firmas
1 2 | (Get-MpComputerStatus).NISSignatureLastUpdated (Get-MpComputerStatus).AntivirusSignatureLastUpdated |
Última actualización del Antispayware
1 | (Get-MpComputerStatus).AntispywareSignatureLastUpdated |
Para actualizar las definiciones en el antivirus se utiliza el cmdlet
1 | Update-MpSignature |
Parámetros y alias de los parámetros para el cmdlet Update-MpSignature
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | UpdateSource {} CimSession {Session} ThrottleLimit {} AsJob {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} |