edaseins
Goto Top

Verknüpfungen prüfen und ggf austauschen

Hallo Leute,

ich habe ein kleines Script welches auf 50 Tablets eine Verknüpfung suchen soll, wenn sie vorhanden ist, löschen soll und anschließend eine neue Verknüpfung hinterlegen soll.

das script sieht wie folgt aus:

$WantFile = "c:\users\prisma\Desktop\ProgrammSwitch.lnk"  
$FileExists = Test-Path $WantFile
If ($FileExists -eq $True) {
                            Remove-Item ”c:\users\prisma\Desktop\ProgrammSwitch.lnk” –Force
                            New-Item -ItemType SymbolicLink -Path "c:\users\prisma\Desktop" -Name "ProgrammSwitch.lnk" -Value "C:\itavero\PRISMAECHT\lib\ProgrammSwitch.exe"  
                           }
Else {exit}

$WantFile2 = "c:\Users\Prisma\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ProgrammSwitch.lnk"  
$FileExists = Test-Path $WantFile2
If ($FileExists -eq $True) {
                            Remove-Item ”c:\Users\Prisma\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ProgrammSwitch.lnk” –Force
                            New-Item -ItemType SymbolicLink -Path "c:\Users\Prisma\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" -Name "ProgrammSwitch.lnk" -Value "C:\itavero\PRISMAECHT\lib\ProgrammSwitch.exe"  
                           }
Else {exit}

Lokal ausgeführt funkioniert es. Aber wenn ich es in unsere Monitoring Lösung einbaue welches über das Systemkonto Skripte ausführt, passiert nichts, wo ist hier der Fehler?

Content-ID: 452294

Url: https://administrator.de/contentid/452294

Ausgedruckt am: 08.11.2024 um 09:11 Uhr

emeriks
Lösung emeriks 16.05.2019 aktualisiert um 15:11:16 Uhr
Goto Top
Zitat von @Edaseins:
wo ist hier der Fehler?
Zunächst in Deiner Fragestellung.

Lass nach jeder Aktion einen Logfileeintrag schreiben. Dann weißt Du, ob das Script überhaupt läuft und wie weit es kommt. Ebenso solltest Du mit Try-Catch Fehler abfangen. Dann kannst Du darauf gezielt reagieren, z.B. auch um Fehler in das Logfile zu schreiben.

Also z.B.
$LogfilePath = "....."  

Try {

...... Hier Deinen Code-Block
.... An "interessanten" Stellen einbauen  

  "Hier bin ich" | Out-File -FilePath $LogfilePath -Append  


} Catch {
  $Error | Out-File -FilePath $LogfilePath -Append
}

E.