¿Cuál es su comando o script Powershell favorito para la administración del sistema? [cerrado]

16

¿Cuál es su principal comando Powershell? ¡Hagamos una lista y votemos los mejores!

Jon Galloway
fuente
@ Jon: ¿quiso decir "cmdlet"?
dance2die
En caso de ser etiquetado como subjetiva
halr9000

Respuestas:

13

Get-Member es el rey de los cmdlets de PowerShell.

Get-Member le permite explorar de forma interactiva miembros y tipos de objetos (con los -static interruptor de miembros estáticos).

Steven Murawski
fuente
5

Me gusta tener un script para encontrar usuarios de AD:

$strFilter = "(&(objectCategory=User)(sAMAccountName=[USERNAME]))";
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher;
$objSearcher.SearchRoot = "LDAP://dc=[AD_Location]";
$objSearcher.Filter = $strFilter;
$objSearcher.SearchScope = "Subtree";
$objSearcher.FindALL()
Eldila
fuente
2
Esto se puede hacer en una línea con los cmdlets AD Misión - son gratis y super útil! quest.com/activeroles-server/arms.aspx
Doug Chase
¡También vea blogs.msdn.com/adpowershell/default.aspx !
Doug Chase
1
@Doug Chase Sí, es gratis, pero algunas organizaciones no le permiten usar software no aprobado, con tiempos de entrega realmente malos para obtener aprobación, pero los scripts que usted mismo escribe están disponibles al instante.
Orihara
1
En caso de que alguien vea esto ahora y piense que este es un buen script, si tiene instaladas las herramientas RSAT, puede hacerlo con una sola línea en Powershell 2.0: Get-ADUser -filter 'Name -like "*"'(reemplace "filtro" con lo que sea)
Mark Henderson
3

Tengo que ir con ayuda. Este cmdlet es la clave para encontrar la funcionalidad de otros cmdlets. Un segundo cercano sería get-member.

Marcus
fuente
2

Por el momento soy un gran admirador de Get-WMIObject.

Tim Benninghoff
fuente
2

"Test-Path" encuentra esto útil para verificar si los datos ya están allí o si es necesario agregar un valor predeterminado.

Brandan
fuente
1

Para mí, ¿ qué es lo más útil?

travis
fuente
-1: -Whatif no es un cmdlet sino una opción de cmdlet.
dance2die
1
él sólo se especifica "comando" no cmdlet
travis
1

CD (Change-Location): básicamente puedo navegar por el registro como si fuera un sistema de archivos. básicamente puede hacerlo para todos los proveedores de PowerShell (devueltos por Get-PSProviders)

cd HKLM:\
dance2die
fuente
1

No hay duda al respecto: Get-Member. No puedo imaginar ninguna sesión de PowerShell sin usarla. La capacidad de descubrimiento es una de las características más sólidas de Windows PowerShell.

aleksandar
fuente
1

Esta es más una técnica que un cmdlet o función en particular, pero mi cosa favorita de PS es la construcción de objetos:

$foo=""|select bar, baz, gronk|ft

te dio

bar   baz   gronk
----- ----- ------

lo cual es útil para convertir datos no estructurados en un conjunto de objetos para su posterior procesamiento.

usuario2278
fuente
1

Uno de mis favoritos:

Obtener contenido "c: \ logfile.log" -wait

La versión powershell de 'tail -f' logfile '

SlinkingAnt
fuente
1
Esto no parece funcionar para mí. Ejecuté este comando contra un archivo CSV en el que otro comando de PowerShell estaba escribiendo datos y no mostraba las actualizaciones del archivo a medida que se modificaba, pero solo me mostró las líneas del archivo tal como existían cuando ejecuté el comando y luego simplemente colgado esperando CTRL + Break.
Chris Magnuson el
1

Veo que Get-Member enumeró que tengo que aceptar que es el mejor, pero un segundo casi igual de necesario para mí es:

Format-List

La forma en que uso esto más comúnmente es después de una tubería para mostrarme todos los valores de las propiedades de un objeto:

$SomeObject | fl *

GM le dirá cuál es el objeto y enumerará los nombres y tipos de sus propiedades, pero la mayoría de las veces esto no le ayuda a comprender realmente la forma en que se usan esas propiedades sin buscar la documentación que puede ser tediosa.

$SomeObject | Format-List * generará todos los valores de las propiedades disponibles en el objeto para que pueda ver cuáles son sus valores actuales y comenzar a buscar las propiedades que desea seleccionar o usar para filtrar objetos.

A menudo encontraré que un objeto tiene múltiples propiedades que, según la documentación, parecen tener los datos que quiero, pero en realidad solo una de las propiedades tiene datos o los datos en uno de ellos no son en absoluto lo que esperarías según La documentación sola.

Chris Magnuson
fuente
0

Además de Get-Member, tendría que decir Add-Member y New-Object que le dan la posibilidad de usar el Sistema de tipos extensibles.

Ser capaz de agregar miembros a cualquier objeto en cualquier momento le permite obtener la información exacta que necesita con la capacidad de ordenarla, agruparla, dividirla, cortarla en dados, exportarla o lo que quiera hacer con ella.

Andy Schneider
fuente