Archief - PowerShell opdracht: ik geraak er niet meer aan uit

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

gillegun

Legacy Member
Beste,

Ik kreeg vorige week een opdracht voor in powershell. Ik sta nu al letterlijk een week te zoeken maar ik vind geen oplossing
hier is de code
Code:
function CheckArgument($intNumber)
{
$tmp = 0
$blnNumber =$false
	if([int]::TryParse($intNumber,[ref]$tmp))
	{
		$intValue = [int]$intNumber
		if($intValue -gt 0)
		{
			$blnNumber = $true
		}
	}
	else
	{
		$blnNumber = $false
	}
	return $blnNumber
}

$blnNoEntries = $false
if($args)
{
	if ($args.length -eq 1)
	{
		$strArgument=$args[0]
	}
	else
	{
		$strArgument = $null	
	}
}
if ($strArgument -eq "help")
{
	Write-Host "
	`t Help voor script PSS013.ps1
	`t Dit script neemt 1 argument aan, het aantal
	`t recente logboekregistraties dat je wenst te
	`t bekijken.
	`t Deze registraties lopen doorheen alle aan-
	`t wezige logboeken." -ForegroundColor DarkGreen
	Write-Host "
	`t Voorbeeld :
	`t > PSS013.ps1 20
	`t toont de laatste 20 registraties voor alle logboeken" -ForegroundColor Yellow -BackgroundColor Blue
}
elseif ($strArgument -eq $null)
{
	Write-Host "
	`t Dit script verwacht één argument
	`t Typ PSS013.ps1 help voor meer info...
	" -ForegroundColor Red
}
else
{
	$blnNoEntries = CheckArgument $strArgument
	if ($blnNoEntries -eq $false)
	{
		Write-Host "
		`t Foutief argument
		`t Type PSS013.ps1 help voor meer info...
		" -ForegroundColor Red
	}
	else
	{
		$strLogList = Get-EventLog -List
		foreach ($strLog in $strLogList)
		{
			if($strLog.entries -ne 0)
			{
			Write-Host "
				`t $strArgument Recentste logs voor logboek $($strLog.log)
				" -ForegroundColor DarkGreen
				Get-Eventlog -LogName $strLog.log -Newest $strArgument
			}
			else
			{
				Write-Host "
				`t Geen logs aanwezig voor logboek $($strLog.log)
				" -Foregroundcolor Red
			}
		}
	}
}

en hier is de vraag:
Pas uw vorige oefening aan( PSS013.ps1à aan zodat het script twee argumenten aanneemt. Het eerste argument blijft het aantal registraties, het tweede argument is het registratietype (entrytype).
Bijgevolg zal nieuweopdracht.ps1 van alle logboeken het aantal opgegeven recente registraties tonen voor het opgegeven registratietype. Pas foutafhandeling toe voor logboeken die geen registraties voor het opgegeven registratietype hebben.
en zo moet het er ongeveer uitzien
107uz5z.jpg


Kan iemand me helpen?

dank bij voorbaat

Gillegun

Aap

Legacy Member
In principe mag je geen vragen stellen in verband met huiswerk.

Ik heb niets opgevangen, dit zal je zelf moeten implementeren. Maar ik heb je op gang geholpen.
Iets zoals dit?

Code:
function CheckArgument($intNumber)
{
$tmp = 0
$blnNumber =$false
	if([int]::TryParse($intNumber,[ref]$tmp))
	{
		$intValue = [int]$intNumber
		if($intValue -gt 0)
		{
			$blnNumber = $true
		}
	}
	else
	{
		$blnNumber = $false
	}
	return $blnNumber
}

$blnNoEntries = $false
if($args)
{
	if ($args.length -eq 2)
	{
		$strArgument=$args[0]
        $strEntrytype=$args[1]
	}
	else
	{
		$strArgument = $null	
	}
}
if ($strArgument -eq "help")
{
	Write-Host "
	`t Help voor script PSS013.ps1
	`t Dit script neemt 1 argument aan, het aantal
	`t recente logboekregistraties dat je wenst te
	`t bekijken.
	`t Deze registraties lopen doorheen alle aan-
	`t wezige logboeken." -ForegroundColor DarkGreen
	Write-Host "
	`t Voorbeeld :
	`t > PSS013.ps1 20
	`t toont de laatste 20 registraties voor alle logboeken" -ForegroundColor Yellow -BackgroundColor Blue
}
elseif ($strArgument -eq $null)
{
	Write-Host "
	`t Dit script verwacht één argument
	`t Typ PSS013.ps1 help voor meer info...
	" -ForegroundColor Red
}
else
{
	$blnNoEntries = CheckArgument $strArgument
	if ($blnNoEntries -eq $false)
	{
		Write-Host "
		`t Foutief argument
		`t Type PSS013.ps1 help voor meer info...
		" -ForegroundColor Red
	}
	else
	{
		$strLogList = Get-EventLog -List
		foreach ($strLog in $strLogList)
		{
			if($strLog.entries -ne 0)
			{
			Write-Host "
				`t $strArgument Recentste logs voor logboek $($strLog.log)
				" -ForegroundColor DarkGreen
				Get-Eventlog -LogName $strLog.log -Newest $strArgument | where {$_.entryType -Match $strEntrytype}
			}
			else
			{
				Write-Host "
				`t Geen logs aanwezig voor logboek $($strLog.log)
				" -Foregroundcolor Red
			}
		}
	}
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan