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 $list
Code: 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 $var
Allerdings 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.exe
Code: 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