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”.