Browsing Posts tagged Samples

Currently, LOGINventory5 MMC-Application does not support the GetDate()-function in quiries like LOGINventory 4. If you want to get all assets with a scandate 30 days ago you can now use the Windows PowerShell. You just have to execute following script:

ScandateBefore30Days.ps1:

 
# Read all LOGINventory CmdLets from Registry and add them to the current session
cd HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns
Get-ChildItem | where {$_.Name -like "*Login.Ventory.*"} | select Name | foreach {add-pssnapin $_.Name.SubString($_.Name.LastIndexOf('\')+1)}
 
# Create LOGINventory Drive change location
$d = new-psdrive -scope global -name LI -PSProvider LOGINventory -root ""
 
cd LI:\Assets
 
# perhaps you have to set the correct culture information for the Convert.ToDateTime-function of .NET
$CULTURE = New-Object System.Globalization.CultureInfo("de-DE")
function isBefore([int]$days, [string]$date)
{
   $scandate = [Convert]::ToDateTime($date, $CULTURE)
   [DateTime]::Compare([DateTime]::Now.AddDays($days).Date, $scandate.Date) -eq 1
}
 
get-LiResults | Where {isBefore -30 $_.scandatetime}

Now you can execute the job:

powershell.exe [location]\ScandateBefore30Days.ps1

You want to do a scheduled export of your query results? Look here…

You have just to save the following script and the txt-file below. The text file contains the path of the query node from the LMC application and the target file separated with a “|”-character.
Sample:
Analyse\myQuery|C:\myResult.csv

ATTENTION: To use this simple script the query names in the LMC have to contain only “normal” characters ([a-z],[A-Z],[0-9])! Spaces are allowed but you have to replace them with a “_”-character in the “Queries.txt” (See the example)!

ExportQueries.ps1:

# Read Query-File-List
param([string]$file)
$queries = Get-Content $file
 
# Read all LOGINventory CmdLets from Registry and add them to the current session
cd HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns
Get-ChildItem | where {$_.Name -like "*Login.Ventory.*"} | select Name | foreach {add-pssnapin $_.Name.SubString($_.Name.LastIndexOf('\')+1)}
 
# Create LOGINventory Drive change location
$d = new-psdrive -scope global -name LI -PSProvider LOGINventory -root ""
 
# Execute CSV-Export for each query
$queries | foreach {
	$path = $_.Split("|")[0];
	$target = $_.Split("|")[1];
 
	cd LI:\$path;
	Get-LiResults | Export-Csv $target;
}

Queries.txt:

Analyse\Samples\Stopped_Autorun_Services|C:\stoppedservices.csv
Analyse\Samples\Remote_Desktop_Users|C:\remoteusers.csv

Now you can execute the job:

powershell.exe [location]\ExportQueries.ps1 [location]\Queries.txt