Excel (2016) Sicherheitswarnungen gezielt ausschalten

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.302
Moin!

Was es mit Sicherheit zu tun hat, wenn ich das automatische Aktualisieren von Verknüpfungen…
in hoffentlich nur dieser Mappe, und nicht generell
…ausgeschaltet habe ist mir ohnehin zu hoch.

Wie auch immer, in dieser speziellen Mappe ist das gewollt. Wie bringe ich Excel bei mich (und Andere die sie öffnen) nicht mehr mit dieser für mich/uns sinnlosen Meldung zu beglücken da wir absolut wissen was und warum wir es tun?

Es soll nur die Info zu den Verknüpfungen sein, sollten sich andere Dinge ungewollt einstellen wären wir gerne weiterhin informiert.

CN8
 
<-- Bahnhof

Bitte in sinnvoll artikulierten Zusammenhängen nochmal fragen.
 
  • Gefällt mir
Reaktionen: Myron und BeBur
Es geht um die Sicherheitswarnung im Anhang.
Meines wissens nach, kann man das nur ueber das Trustcenter einstellen (Externer Inhalt) und diese Einstellungen sind global.
 

Anhänge

  • Sicherheitswarnung.PNG
    Sicherheitswarnung.PNG
    10,2 KB · Aufrufe: 361
Mit so was hatte ich gerechnet. Also bleibt uns das erhalten…

CN8


@onesworld
Offenbar habens Andere kappiert.
 
@cumulonimbus8

Keine Ahnung, ob das Nachfolgende bei deinem Vorhaben funktioniert, aber versuchen kann man es ja mal.
Gib folgenden PowerShell-Code in einen Texteditor ein und speichere die Datei unter
"BeliebigerName.ps1", ggf. im selben Ordner wie das besagte Exceldokument.

PowerShell:
# Pfad und Name des Exceldokuments anpassen:
$InputFile = "C:\Pfad\Excelformular.xlsx"
$ExcelApp = New-Object -Com Excel.Application
$ExcelApp.EnableEvents = $False
# Das müsste die Sicherheitswarnung deaktivieren:
$ExcelApp.DisplayAlerts = $False
# Damit wird das Exceldokument geöffnet:
$WorkBook = $ExcelApp.WorkBooks.OpenXML($InputFile)

# Das erste Datenblatt wird aktivert:
$Sheet1 = $WorkBook.WorkSheets.Item(1)
# Name des Datenblatts anpassen:
$Sheet1.Name = "Name des Sheet"
$Sheet1.Activate()
 
Der erste Instinkt sagt, dass das nicht gelingen wird.
Einstellungen bei den Kollegen, ja. Aber so was mit Files deren Name garantiert geändert wird, mal hier und da auf dem Server… Praktisch nicht zu praktizieren 😉

Wäre denn vllt. was mit VBA im Auto-Open denkbar; die Aktualiserung der Bezüge abzuschalten? DisplayAlerts..? Aber wann und wie schaltet man das wieder ein?

CN8
 
Evtl. funktioniert es mit den Vertrauenswürdigen Speicherorten. Ein Pfad angeben, wo die Dateien liegen. Muss dann allerdings auch eingehalten werden.

Wobei Excel von der Nutzung der Vertrauenswürdigen Speicherorten im Netzwerk abrät.
 
cumulonimbus8 schrieb:
DisplayAlerts..? Aber wann und wie schaltet man das wieder ein?

Probiere es mal so:

PowerShell:
# Lässt nach Aufruf des Skripts die PS-Konsole verschwinden:
Add-Type -Name Window -Namespace Console -MemberDefinition @'
[DllImport("Kernel32.dll")]
public static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow);
'@
[Void][Console.Window]::ShowWindow([Console.Window]::GetConsoleWindow(),0)

# Pfad und Dateiformat des Exceldokuments anpassen
# Name des Exceldokuments wird ermittelt (auch nach Änderung des Namens)
# Voraussetzung: Es ist das einzige Exceldokument im Verzeichnis!!
$InputFile = (Get-ChildItem "C:\Pfad\*.xlsx").Name

$ExcelApp = New-Object -Com Excel.Application

# Ereignismeldungen werden unterdrückt
$ExcelApp.EnableEvents = $False

# Sicherheitswarnungen werden unterdrückt
$ExcelApp.DisplayAlerts = $False

# Das Exceldokument bleibt noch im Hintergrund
$ExcelApp.Visible = $False

# Das Exceldokument (im Hintergrund) öffnen
$WorkBook = $ExcelApp.WorkBooks.OpenXML($InputFile)

# Das erste Datenblatt wird aktivert:
$Sheet1 = $WorkBook.WorkSheets.Item(1)
# Name des Datenblatts anpassen:
$Sheet1.Name = "Name des Sheet"
$Sheet1.Activate()

Start-Sleep 2

# Ereignismeldungen und Sicherheitswarnungen wieder aktivieren:
$ExcelApp.EnableEvents = $True
$ExcelApp.DisplayAlerts = $True

# Exceldokument in den Vordergrund holen
$ExcelApp.Visible = $True

Der Code funktioniert wahrscheinlich nicht in der PS-Konsole und muss über ein Skript ausgeführt werden.

Das Ausführen von Macros und Funktionen über VBA sind bei uns auf der Arbeit, aus Sicherheitsgründen, nicht erlaubt.
Deshalb konfiguriere ich die automatisierten Abläufe in den Exceldokumenten ausschließlich über PS-Skripte
und die Exceldokumente werden auch ausschließlich über die entsprechenden PS-Skripte aufgerufen.

Den hier eingestellen PS-Code habe ich selbst nicht getestet, deshalb: Ohne Gewähr und auf eigene Gefahr!
Am Besten mit der Kopie eines Exceldokuments testen.
Falls der Code bzw. diese Vorgehensweise überhaupt eine Option sein sollte.
 
Evtl. funktioniert es mit den Vertrauenswürdigen Speicherorten. Ein Pfad angeben, wo die Dateien liegen. Muss dann allerdings auch eingehalten werden.
Würde wenge der vorhanden Unordnung Struktur leider nicht klappen. Es müsste die Mappe oder wenigstens Excel selbst sein.

Das Skript ist interessant - ich konnte es noch nicht testen weil ich (tralala) dauernd mit der Datei selbst kämpfen musste :)

CN8
 
Ich hätte es sehr gerne mal durchgetestet.
Doch leider verträgt sich die Windows 10 2004 mit meinem Office 2016 anscheinend nicht mehr und ich kann keines der Officekomponenten mehr starten.
Bin seit gestern auf der Fehlersuche und installiere jetzt gleich noch das aktuelle KU von Windows 10 und danach spiele ich auch die aktuellen Office-Updates auf.
Hoffentlich behebt das die Probleme, ansonsten werde ich wohl clean installieren müssen.
 
Die vertrauenswürdigen Speicherorte lassen sich auch auf Unterordner anwenden.

Ansonsten hilft womöglich die GPO weiter, man muss seinem Netzwerk erstmal erklären, dass die eigenen Server vertrauenswürdig sind. Als Wert steht *.meine.domain.xyz drin, die Server haben ihren FQDN ja dort "drin".

Wie man VBA im Netzwerk einsetzt hab ich bei mir auf der Seite erklärt.
 

Anhänge

  • IETrustedSites.png
    IETrustedSites.png
    21,7 KB · Aufrufe: 230
Und das gilt für individuelle Dateien?
Generelles Abschalten ist nicht drin, das gäbe Haue :D

CN8
 
Ich habe das mit dem PS-Skript jetzt mal testen können und hier hat es funktioniert.
Nach dem Aufruf des Exceldokuments über das Skript, erscheint kein Sicherheitshinweis und es kommen auch keine anderen Meldungen, obwohl die Optionen unmittelbar wieder aktiviert wurden.

Beim manuellen Aufruf der Excel, also ohne die Optionen des Skripts, kommen die Hinweise wieder.
Ich denke, so soll es sein.
Ob das Aufrufen der Excel über ein Skript für alle deine Nutzer generell eine Option sein könnte, kann ich nicht beurteilen.

Besser wäre es, das über VBA zu ermöglichen. Da bin ich aber schon seit längerer Zeit nicht mehr am Ball, weil das Setzen von Makros bei uns, wie erwähnt, nicht mehr erlaubt ist.
 
Die COM Objekte in PS sind ziemlich lahm und de facto muss man die Powershell ebenfalls für das Unternehmensnetzwerk konfigurieren. Die meisten Leute können damit auch nicht sonderlich gut umgehen sofern man keine XAML Oberflächen davor hängt oder alles fix und fertig konfiguriert.

Sofern VBA über zentrale AddIns mit vertrauenswürdigen Speicherorten keine Option sind, dann führt als nächster Schritt meistens nichts an VSTO vorbei. Ein wunderschönes installierbares C# AddIn mit Templates ohne Makros löst dieses VBA-Problem hinlänglich und die IT ist glücklich. Da man sich dort auch einen msi Installer ausgeben lassen kann, klappt auch die Softwareverteilung problemlos.
 
morcego schrieb:
sofern man keine XAML Oberflächen davor hängt
Japp, so läuft das hier bei uns. Funktioniert ganz gut, auch wenn von diversen Kollegen immer wieder Rückfragen dieser Art: "Wo muss ich da draufklicken?", oder: "Was muss ich wo eintragen?" einlaufen. :D
 
Meine Kollegen wären zu fit sich zu so einer Vorschalte überreden zu lassen.
Also lasse ich sie das jedes Mal wegklicken 😇
CN8
 
  • Gefällt mir
Reaktionen: Micha45
Zurück
Oben