ich bin seit gestern dran ein kleines Script zu schreiben um den letzten eingeloggten Nutzer eines PCs in unserem Unternehmen zu finden.
Dazu habe ich eine Action erstellt:
Code: Alles auswählen
[ExecWith_ps]
function ExecWith_ps{
$var = (Get-WmiObject -Class Win32_NetworkLoginProfile |
Sort-Object -Property LastLogon -Descending |
Select-Object -Property * -First 1 |
Where-Object {$_.LastLogon -match "(\d{14})"}).name
return $var
}
$list = ExecWith_ps
return $listCode: Alles auswählen
[ExecWith_ps]
$var = (Get-WmiObject -Class Win32_NetworkLoginProfile |
Sort-Object -Property LastLogon -Descending |
Select-Object -Property * -First 1 |
Where-Object {$_.LastLogon -match "(\d{14})"}).name
return $varAllerdings bin ich am verzweifeln daran, den Rückgabewert der Powershell-Abfrage wieder ins Opsi zu bekommen.
Ich habe bereits einiges getestet, allerdings meistens nur eine 1 oder 0 angezeigt bekommen.
Code: Alles auswählen
;DefVar $policy$
;DefVar $list$
DefVar $user$
DefStringList $list$
;DefVar $lastuserlogin$
;Set $lastuserlogin$ = takeString(0,shellCall('powershell.exe (Get-WmiObject -Class Win32_ComputerSystem).UserName'))
;shellCall('powershell.exe set-executionpolicy RemoteSigned')
;Set $lastuserlogin$ = ExecWith_ps winst /64Bit
;set $policy$ = takeString(0,shellCall('powershell.exe get-executionpolicy '))
;shellCall('powershell.exe set-executionpolicy RemoteSigned')
;Execwith_ps powershell.exe -ExecutionPolicy RemoteSigned
;shellCall('powershell.exe set-executionpolicy '+$policy$')
;set $list$ = getLastExitcode
;set $list$ = Execwith_ps powershell.exe -ExecutionPolicy RemoteSigned
set $list$ = getReturnListFromSection('ExecWith_ps')
;set $list$ = Execwith_ps powershell.exe
set $user$ = composeString($list$,"test")
;set $list$ = powershellCall('(Get-WmiObject -Class Win32_NetworkLoginProfile | Sort-Object -Property LastLogon -Descending | Select-Object -Property * -First 1 | Where-Object {$_.LastLogon -match "(\d{14})"}).name')
;Execwith_ps powershell.exe -ExecutionPolicy RemoteSigned
;set $list$ = ExecWith_ps powershell.exeCode: Alles auswählen
Set $HostNotes$ = $ProcCores$+"\n"+$ProcInfo$+"\n"+"RAM: "+$Memory$+"\n"+"BIOS-Version: \n"+$Bios$+"\n\n"+"IP: "+$IP-Adresse$+"\n"+"MAC: "+$MAC-Adresse$+"\n\n"+$OSVersion$+"\n"+$ImageVersion$+"\n"+"Installiert am: "+$InstallDate$+"\n"+"Letzter Benutzer: "+$LastUser$+"\nlast: "+$user$Mit dem aktuellen Testcode, der nicht auskommentiert ist, bekomme ich leider nur einen leeren String angezeigt.
Kann mir da jemand helfen oder hat eine Idee?
Ich bin erst in Opsiscript eingestiegen und kenne noch nicht alle passenden Befehle etc.
Vielen Dank und liebe Grüße
David