Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Powershell bei Button X einen Befehl auführen

Frage Entwicklung Batch & Shell

Mitglied: mguenth83

mguenth83 (Level 1) - Jetzt verbinden

10.01.2014 um 16:40 Uhr, 2297 Aufrufe, 6 Kommentare

Hi,
hoffe Ihr könnt mir helfen. Ich habe ein Windows 7 X64 System und habe ein Script das den Befehl "Register-EngineEvent PowerShell.Exiting" beim drücken des "X" ausführt.

Ich möchte damit erreichen, dass wenn man das Script mit Gewalt per X beendet dieser noch einen aller letzten Befehl ausführt.

Er sollte dann diesen Befehl ausführen was verhindert das die Datei nicht schreibgeschützt bleibt.

01.
Register-EngineEvent PowerShell.Exiting -SupportEvent -Action {(Get-ItemProperty "$env:windir\system32\Empirum\AgentConfig.xml").isReadOnly = $false}
Das ganze funktioniert soweit in ISE aber nicht mit der Console....

Gruß
Matthias
Mitglied: colinardo
10.01.2014, aktualisiert um 18:20 Uhr
Hallo Matthias,
also hier geht es auch in einer Konsole einwandfrei. Eventuell stimmt was mit deinem Powershell-Profil nicht. Starte mal eine Konsole mit powershell.exe -noprofile und führe dann die Zeile darin aus.
Geht denn folgendes überhaupt in einer separaten Konsole?
Register-EngineEvent PowerShell.Exiting -SupportEvent -Action {start-process "notepad.exe"}
Oder vermutlich schlägt das setzen des ReadOnly-Attributs fehl weil die Datei noch von deinem Script in Benutzung ist. Hier müsste man dann den jeweiligen Prozess erst beenden bzw. diesen vorher mit Start-Process starten, in einer Variablen speichern, und dann im Event den Prozess stoppen bevor man das Attribut setzt.

Grüße Uwe
Bitte warten ..
Mitglied: mguenth83
10.01.2014, aktualisiert um 19:46 Uhr
Hi,
habe nochmal neu gestartet und es probiert. Leider funktioniert es immer noch nicht. Das komische ist das ich ein Menu erstellt habe im Script und wenn ich dort 1,2 oder 3 drücke dann die Befehle sich ausführen und dann sich das Script schließt funktioniert es. Sprich es funktioniert nur nicht wenn ich das X benutze.

Habe gerade den Fehler gefunden...es liegt im Menue...bzw wahrscheinlich an der Abfrage von Read-Host. Er wartet auf eine Eingabe und solange die nicht erfolgt ist wird es nicht funktionieren. Fragt sich wie man das ganze umgehen kann.
Hier mal der Code:
01.
 
02.
#Variablen für Mehrfachbenutzung# 
03.
################################# 
04.
$file = Get-ItemProperty "$env:windir\system32\Empirum\AgentConfig.xml" 
05.
Register-EngineEvent PowerShell.Exiting -SupportEvent -Action {(Get-ItemProperty "$env:windir\system32\Empirum\AgentConfig.xml").isReadOnly = $false} 
06.
$Stop = Stop-Service -Name "eris" -Force -ErrorAction SilentlyContinue 
07.
$Start = Start-Service -Name "eris" -ErrorAction SilentlyContinue 
08.
 
09.
# Bildschirm ‘leeren’ 
10.
cls 
11.
 
12.
# Das Auswahl-Menu 
13.
Write-Host “Was willst Du tun?” 
14.
Write-Host ” “ 
15.
Write-Host “1. Kioskmode aktivieren” 
16.
Write-Host “2. Kioskmode beenden und Einstellungen rückgängig machen” 
17.
Write-Host "3. Dienst neustarten" 
18.
Write-Host ” “ 
19.
 
20.
# Die einzige Variable 
21.
$a = Read-Host “Deine Wahl“ 
22.
 
23.
Write-Host ” ” 
24.
 
25.
# switch-case | Auswahl Abfangen und Verarbeiten 
26.
switch ($a) 
27.
28.
29.
30.
#Service-Stoppen# 
31.
################# 
32.
$Stop 
33.
 
34.
#XML Datei, Werte ändern# 
35.
######################### 
36.
(Get-Content -Path $file) -replace ('<Kiosk>false</Kiosk>','<Kiosk>true</Kiosk>') | Out-File $File 
37.
 
38.
#Datei schreibschutz aktivieren# 
39.
################################ 
40.
$file.isReadOnly = $true 
41.
 
42.
#Service-Starten# 
43.
################# 
44.
$Start 
45.
 
46.
#Starten von Kioskmode# 
47.
#################### 
48.
&"$env:windir\system32\Empirum\eris_ui.exe" 
49.
50.
}
Bitte warten ..
Mitglied: colinardo
10.01.2014 um 20:47 Uhr
Dir ist schon bewusst das das Event auch ausgeführt wird wenn die Konsole normal geschlossen wird ? D.h. nach dem setzen von ReadOnly und starten des Dienstes wird der Schreibschutz des Files wieder entfernt, wenn sich die Konsole schließt.

Entferne doch einfach schon vor dem Read-Host-Befehl präventiv den Schreibschutz des Files oder geht das nicht weil der Dienst da die Finger drauf hat ?
Bitte warten ..
Mitglied: mguenth83
13.01.2014 um 12:21 Uhr
Hi,
leider hat der Dienst dort seine Finger im Spiel und somit geht das nicht..
Szenario ist das egal ob das Script so beendet wird oder über das X geschlossen wird soll der die Datei keinen Schreibschutz mehr haben.
Wie schon gesagt mit der ISE funktioniert´s...komischerweise nicht mit der Konsole...
Bitte warten ..
Mitglied: colinardo
13.01.2014, aktualisiert um 12:26 Uhr
aber wieso funktioniert dann das setzen des ReadOnly-Flags auf false wenn der Dienst läuft, und du die Konsole bzw. ISE schließt ?? das sollte dann ja auch nicht gehen...
Bitte warten ..
Mitglied: mguenth83
13.01.2014 um 14:37 Uhr
Ehrlich gesagt weiß ich net ob dies funktioniert oder nicht...habe den Dienst nicht aufm Rechner....also kann auch sein das es geht...generell sollte es ja immer funktionieren weil der Dienst garnet installiert ist. Sprich nix kann die Datei blocken.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Button um Listbox einträge auszuwählen
gelöst Frage von BuggerBatch & Shell4 Kommentare

Hallo, ist es möglich Einträge in einer Listbox per extra Button auszuwählen? In einer langen Liste hätte man so ...

Windows Tools
Powershell DataGridView Buttons anpassen überschreiben
gelöst Frage von H41mSh1C0RWindows Tools4 Kommentare

Hi PS Guru's, ich bin wieder beim DataGridView hängen geblieben. In einigen Spalten habe ich Buttons eingefügt. Nun wollte ...

Batch & Shell
Powershell-Befehl in Variable umleiten
gelöst Frage von CoreknabeBatch & Shell5 Kommentare

Moin, ich möchte unseren Exchange mit einem Powershell-Skript konfigurieren. Die Ausgabe eines Befehls soll in einem Windows-Fenster mit OK-Button ...

Batch & Shell
Word Powershell Befehle
Frage von mguenth83Batch & Shell2 Kommentare

Hi, wollte kurz fragen ob jemand den Befehl für ein "Backspace" kennt. Habe schon viele Seiten wo Powershell mit ...

Neue Wissensbeiträge
Datenschutz

Weitere Inforamtionen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 41 MinutenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 2 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 5 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 11 StundenErkennung und -Abwehr2 Kommentare

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücken Spectre, Meltdown ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

E-Business
Bankgeheimnis abgeschafft - wie kann ich mich wehren?
Frage von honeybeeE-Business13 Kommentare

Hallo, ich nehme Bezug auf diesen Artikel: Als ich das gelesen habe, wurde mir schlecht Es geht ja niemanden ...