Powershell

Iniciado por Rios, 31 de Maio de 2011, 20:06

tópico anterior - próximo tópico

Rios

Alguem pode me ajudar com essa questao? (PowerShell)

Um estudante criou um script , que imprime a informação relevante a partir do registro historico(Logs), e as escreve para um arquivo de texto. Até agora ele tinha que recuperar o arquivo de texto manualmente, mas agora ele vê a oportunidade de escrever um plugin para  programa "monitor.0" que recupera o conteudo  automaticamente.

No PowerShell console em um Windows Server 2008, o comando
PS C: \Logs> ls   dar o seguinte resultado:

Directory : Microsoft.powershell.core\FileSystem::C\Logs

Mode               LastWriteTime             Length Name
----                      -------------                           ----------
-a---                   16.05.2011  08:00         11590 FIO_members.txt 
-----                     26.02.2011  07:00         1702  spooler_surveillance.txt
-a---                     14.05.2011  07:56        12908  syslog.txt   


O log skrev para systemlog.txt  e para  descobrir o que o powershell proporciona ," o estudante",estuda o comando  PS C: / Logs> ls syslog.txt | get-member.
O comando fornece o seguinte detalhe abaixo:
:::::::::::::::
TypeName: system.IO.FileInfo

Name                 MemberType      Definition
----                             ----------              ----------
AppendText       Method      System.IO.Streamwrite AppendText()       
CopyTo               Method    System.IO.FileInfo CopyTo (String de...
...
set_creationTime   Method     system.void
set_creationTime (DateTime...
set_LastAccessTime      Method   system.void
set_LastAccessTime (DateTime...
set_LastwriteTime        Method         System.void
           set_LastwriteTime (DateTime... 
           ...
       CreationTime  property   System.DateTime CreationTime{get;s...
LastAccessTime     property   System. DateTime LastAccessTime {get...
LastWriteTime         property   System.DateTime  LastWrite.Time  {get;...
Length                     Property    System.Int64 Length {get;}     
Name                      Property    System.String Name {get;}
...   



a) Explique da forma mais sucinta possível, o que acontece no comando que foi usado (sem contar com as informações impressas acima).



b) Suponha que você está no PowerShell console no PS C: / Logs>. Escreva um comando do PowerShell que imprimir o horario da última vez que houve mudança no arquivo   syslog.txt   na tela. Uma chamada correta dá o seguinte resultado:

     16. mai 2011  07:56:48


O estudante  quer fazer uma cópia do registro historico (log)do sistema. A copia do arquivo fará que  horario de acesso do arquivo tera mudancas no sistema de arquivos  porque ele não confia totalmente no Windows e ele deseja mudar isso manualmente. Ele escreve apenas alguns comandos para se certificar de que ele se lembra de como lida com "horario" usando o PowerShell:


PS C:\Logs> Get-date

16. mai 2011  07:56:48
PS C:\Logs>$now=Get-date
PS C:\Logs>$now.Get-type()

IsPublic IsSeraial Name                       Basetype
--------    --------    ----                                --------
True        True    DateTime                   system.valueType
 

Ele agora sabe o formato  da data atual , e tenta o codigo abaixos  que dá a mensagem de erro:

PS C:\Logs> (ls system.txt). set_LastAccessTime("16.mai 2011 07:56:48)

Cannot convert values "16.mai 2011 08:00:00" To type"System. DateTime". Error: " the string was not recognized as valid Date Time.
...(ls syslog.txt) . set _LastAccessTime(<<< "16.mai 2011 07:56:48")
PS C:\Logs>

c) Qual o tipo de argumento  espera o metodo  set_LastAccessTime  e qual foi o resultado ?


  d) Suponha que você está na linha de comando e que tem feito o que é mencionado acima. Escreva  para o comando para definir o ponto de acesso, para que ele funcione.


O estudante terminou o ponto de acesso  e trabalhar a partir da data da última modificação. Ele encontrou o comando para imprimir o horario do último arquivo modificado, e armazenou o resultado  na variáve  lastChanged. Além disso, ele deseja  agora a escrever um script que imprime o registo (historico) do sistema, mas só se houver alteracoes  "do mesmo " nos últimos dias.
Ele começa assim:

PS C:\Logs> $timeDiff=((Get-Date) - $lastChange) . Days
PS C:\Logs> $timeDiff
2
PS C:\Logs>   


e) Use o que foi  feito acima e escreva um comando que imprime o conteúdo do syslog.txt  se ele for mais velho que um dia, e caso contrário," Nothing new".

fpissarra

Desculpe ser meio chato, mas você já reparou no nome do forum?

Tota

Ola Rios

Por favor use => www.microsoft.com/support

Peça ajuda apenas ao GNU/Linux


Topico trancado