Wie bekomme ich einen brauchbaren Returncode von Sysinternal Autologon.exe aus einem Powershell Skript?

Hertkorn, Gerd 0 Zuverlässigkeitspunkte
2024-08-13T10:56:52.2666667+00:00

Ich haben folgendes powershell skript.:

############################
param (

[string]$computerName,

[string]$username,

[string]$domainName,

[string]$password

)

Write-Host "Computername: $computerName"

Write-Host "Benutzername: $username"

Write-Host "Domänenname: $domainName"

Write-Host "Passwort: $password"

Erstelle den Argumentstring für AutoLogon.exe

$autoLogonArgs = "$username $domainName $password /accepteula"

Starte AutoLogon.exe auf dem Remote-Computer

$process = Invoke-Command -ComputerName $computerName -ScriptBlock {

Start-Process -FilePath "C:\Windows\System32\AutoLogon.exe" -ArgumentList $using:autoLogonArgs -PassThru

}

Erfasse den Exit-Code

$exitCode = $process.ExitCode

Write-Host "Exit-Code: $exitCode"

Start-Sleep -Seconds 3

$process | Format-List -Property *
############################

wenn ich alle Übergabeparameter richtig eingebe:

z.B. so:

powershell .\aktivieren.ps1 -computerName "hostname" -username "User_exist" -domainName "Domain" -password 'geheim'

Ich bekomme da folgende Ausgabe zurück:

#######################
Computername: hostname
Benutzername: User_exist
Domänenname: Domain
Passwort: geheim
Exit-Code:

Name : AutoLogon
SI : 0
Handles : 15
VM : 6402048
WS : 987136
PM : 319488
NPM : 2368
Path : C:\Windows\System32\AutoLogon.exe
Company : Sysinternals - www.sysinternals.com
CPU : 0,03125
FileVersion :
ProductVersion :
Description :
Product :
__NounName : Process
PSComputerName : hostname
RunspaceId : ce0bd10b-6165-46ce-8640-304c73e93de6
PSShowComputerName : True
Id : 800
PriorityClass : Normal
HandleCount : 15
WorkingSet : 987136
PagedMemorySize : 319488
PrivateMemorySize : 319488
VirtualMemorySize : 6402048
TotalProcessorTime : 00:00:00.0156250
BasePriority : 8
HasExited : False
Handle : 2772
SafeHandle : Microsoft.Win32.SafeHandles.SafeProcessHandle
MachineName : .
MainWindowHandle : 0
MainWindowTitle :
MainModule : System.Diagnostics.ProcessModule (AutoLogon.exe)
MaxWorkingSet : 1413120
MinWorkingSet : 204800
Modules : {System.Diagnostics.ProcessModule (AutoLogon.exe), System.Diagnostics.ProcessModule (ntdll.dll), System.Diagnostics.ProcessModule (wow64.dll),

                         System.Diagnostics.ProcessModule (wow64win.dll)...}  

NonpagedSystemMemorySize : 2368
NonpagedSystemMemorySize64 : 2368
PagedMemorySize64 : 319488
PagedSystemMemorySize : 13488
PagedSystemMemorySize64 : 13488
PeakPagedMemorySize : 401408
PeakPagedMemorySize64 : 401408
PeakWorkingSet : 987136
PeakWorkingSet64 : 987136
PeakVirtualMemorySize : 7827456
PeakVirtualMemorySize64 : 7827456
PriorityBoostEnabled : True
PrivateMemorySize64 : 319488
PrivilegedProcessorTime : 00:00:00
ProcessName : AutoLogon
ProcessorAffinity : 15
Responding : True
SessionId : 0
StartInfo : System.Diagnostics.ProcessStartInfo
StartTime : 13.08.2024 12:02:20
SynchronizingObject :
Threads : {System.Diagnostics.ProcessThread}
UserProcessorTime : 00:00:00.0156250
VirtualMemorySize64 : 6402048
EnableRaisingEvents : False
WorkingSet64 : 987136
Site :
Container :

#######################

Da ist jedoch KEIN Return- oder Exit-Code

Gebe ich mutwillig beim User einen nicht existierenden User ein um zu prüfen ob dann ein Return- oder Exit-Code zurückgemeldet wird. z.B. so:
powershell .\aktivieren.ps1 -computerName "hostname" -username "User_NOTexist" -domainName "Domain" -password 'geheim'

Bekomme ich folgende leicht andere Ausgabe zurück:

#######################

Computername: hostname
Benutzername: User_NOTexist
Domänenname: Domain
Passwort: geheim
Exit-Code:
Name : AutoLogon
SI : 0
Handles : 15
VM : 6402048
WS : 978944
PM : 315392
NPM : 2368
Path : C:\Windows\System32\AutoLogon.exe
Company : Sysinternals - www.sysinternals.com
CPU : 0
FileVersion : 3.10
ProductVersion : 3.10
Description : Autologon configuration
Product : Sysinternals Autologon

__NounName : Process
PSComputerName : hostname
RunspaceId : f0ea751d-0f85-4beb-8dfd-5ee503c1b895
PSShowComputerName : True
Id : 5060
PriorityClass : Normal
HandleCount : 15
WorkingSet : 978944
PagedMemorySize : 315392
PrivateMemorySize : 315392
VirtualMemorySize : 6402048
TotalProcessorTime : 00:00:00
BasePriority : 8
HasExited : False
Handle : 2748
SafeHandle : Microsoft.Win32.SafeHandles.SafeProcessHandle
MachineName : .
MainWindowHandle : 0
MainWindowTitle :
MainModule : System.Diagnostics.ProcessModule (AutoLogon.exe)
MaxWorkingSet : 1413120
MinWorkingSet : 204800
Modules : {System.Diagnostics.ProcessModule (AutoLogon.exe), System.Diagnostics.ProcessModule (ntdll.dll), System.Diagnostics.ProcessModule (wow64.dll),

                         System.Diagnostics.ProcessModule (wow64win.dll)...}  

NonpagedSystemMemorySize : 2368
NonpagedSystemMemorySize64 : 2368
PagedMemorySize64 : 315392
PagedSystemMemorySize : 13488
PagedSystemMemorySize64 : 13488
PeakPagedMemorySize : 401408
PeakPagedMemorySize64 : 401408
PeakWorkingSet : 987136
PeakWorkingSet64 : 987136
PeakVirtualMemorySize : 7827456
PeakVirtualMemorySize64 : 7827456
PriorityBoostEnabled : True
PrivateMemorySize64 : 315392
PrivilegedProcessorTime : 00:00:00
ProcessName : AutoLogon
ProcessorAffinity : 15
Responding : True
SessionId : 0
StartInfo : System.Diagnostics.ProcessStartInfo
StartTime : 13.08.2024 12:41:07
SynchronizingObject :
Threads : {System.Diagnostics.ProcessThread}
UserProcessorTime : 00:00:00
VirtualMemorySize64 : 6402048
EnableRaisingEvents : False
WorkingSet64 : 978944
Site :
Container :

#######################

Da ist jedoch ebenfalls KEIN Return- oder Exit-Code.

Was kann ich tun, um zu prüfen ob die Aktivierung- bzw. Änderung lokal auf dem remote Client funktioniert hat?

Windows 10
Windows 10
Ein Microsoft-Betriebssystem, das auf PCs und Tablets ausgeführt wird.
28 Fragen
Windows
Windows
Eine Familie von Microsoft-Betriebssystemen, die auf PCs, Tablets, Laptops, Smartphones, Internet-of-Things-Geräten, eigenständigen Mixed Reality-Headsets, großen Bildschirmen für die Zusammenarbeit und anderen Geräten ausgeführt werden
68 Fragen
0 Kommentare Keine Kommentare
{count} Stimmen

1 Antwort

Sortieren nach: Am hilfreichsten
  1. Ian Xue 37,541 Zuverlässigkeitspunkte Microsoft-Anbieter
    2024-08-14T02:01:02.78+00:00

    Hallo Hertkorn, Gerd,

    Bitte prüfen Sie, ob dies für Sie funktioniert

    $process = Invoke-Command -ComputerName $computerName -ScriptBlock {
    	$autologon = Start-Process -FilePath "C:\Windows\System32\AutoLogon.exe" -ArgumentList $using:autoLogonArgs -PassThru -Wait
    	$autologon
    }
    

    Mit freundlichen Grüßen,

    Ian Xue


    Wenn die Antwort hilfreich ist, klicken Sie bitte auf "Annahme der Antwort" und bewerten Sie sie hoch.

    0 Kommentare Keine Kommentare

Ihre Antwort

Fragesteller*innen können Antworten als akzeptierte Antworten markiert werden, wodurch Benutzer*innen wissen, dass diese Antwort das Problem gelöst hat.