it-swarm.com.de

Ignorieren Sie das 'Sicherheitswarnung'-Skript von der Befehlszeile aus

Ich versuche, ein Skript aus einem freigegebenen Ordner auszuführen, dem ich vertraue:

PowerShell -file "\\server\scripts\my.ps1"

Ich erhalte jedoch eine Sicherheitswarnung und muss 'R' drücken, um fortzufahren

Sicherheitswarnung Führen Sie nur Skripts aus, die du vertraust. Während Skripte aus der Internet kann nützlich sein, dieses Skript kann Ihren Computer beschädigen. Tun Sie möchten laufen \server\scripts\my.ps1? [D] Nicht run [R] Einmal ausführen [S] Suspend [?] Hilfe (Standardeinstellung ist "D"): d

Kann ich diese Warnung ignorieren? Der gewünschte Pseudo-Code, den ich möchte, lautet:

PowerShell -IGNORE_SECURITY_WARNING -file "\\server\scripts\my.ps1"
57
alex2k8

Dies wird in "PowerShell-Ausführungsrichtlinien in Standardimages" in Lee Holmes 'Blog und "PowerShells Sicherheitsrichtlinien" in Windows Power Shell-Blog behandelt =.

Zusammenfassung Einige Computer behandeln UNC-Pfade als das große schlechte Internet, daher behandelt PowerShell sie als Remotedateien. Sie können diese Funktion entweder auf diesen Servern deaktivieren (UncAsIntranet = 0,) oder die Remotecomputer Ihren vertrauenswürdigen Hosts hinzufügen.

Wenn Sie beides nicht möchten, unterstützt PowerShell v2 einen -ExecutionPolicy -Parameter, der genau das tut, was Ihr Pseudocode will. PowerShell -ExecutionPolicy Bypass -File (...).

79
LeeHolmes

Um Warnungen zu vermeiden, können Sie: 

Set-ExecutionPolicy bypass
41

Wenn Sie von einem heruntergeladenen Powershell-Skript auf diesen Fehler stoßen, können Sie das Skript auf folgende Weise aufheben:

  1. Klicken Sie mit der rechten Maustaste auf die betreffende .ps1-Datei, und wählen Sie Properties aus.

  2. Klicken Sie in den Dateieigenschaften auf Unblock

    enter image description here

  3. Klicken Sie auf OK.

37
mopsled

Weisen Sie einfach 1 der Umgebungsvariablen SEE_MASK_NOZONECHECKS zu 

$env:SEE_MASK_NOZONECHECKS = 1
Start-Process $msi_file_path /qn -Wait | out-null
11
Jameel Grand

Versuchen Sie dies, bearbeiten Sie die Datei mit:

notepad foo.ps1:Zone.Identifier

Und setze 'ZoneId = 0'

3
Don Werve

Sie möchten die Ausführungsrichtlinie auf Ihrem Computer mit Set-ExecutionPolicy festlegen:

Set-ExecutionPolicy Unrestricted

Sie können die verschiedenen Ausführungsrichtlinien untersuchen, um herauszufinden, welche für Sie die richtige ist. Schauen Sie sich den "help about_signing" für weitere Informationen an.

2
zdan

Ich habe dieses Powershell-Skript erstellt, um alle Dateien auf einer Freigabe auf meinem Server freizugeben

Get-ChildItem "\\ServerName\e$\MyDirectory\" -Recurse -File | % {
       Unblock-File -Path $_.FullName
}
2
Peter Veg

Haben Sie das Skript aus dem Internet heruntergeladen?

Entfernen Sie anschließend den NTFS-Stream mit der Befehlszeile sysinternals streams.exe aus der Datei.

cmd> streams.exe .\my.ps1

Versuchen Sie jetzt, das Skript erneut auszuführen.

1
Sung M. Kim

Nichts davon funktionierte in meinem speziellen Fall. Was wurde getan, wurde vom FQDN in einen NetBIOS-Namen geändert. 

Anstatt:
\\server.domain.net\file.ps1
benutzen:
\\server\file.ps1

Die Verwendung des Namens umgeht die Konfiguration "IE Intranet-Netzwerk automatisch erkennen" im IE.

Siehe Option 1 im Blog hier: http://setspn.blogspot.com/2011/05/running-powershell-scripts-from-unc.html

1
lightwing

Angenommen, Sie müssen das ps-Skript aus dem freigegebenen Ordner starten

copy \\\server\script.ps1 c:\tmp.ps1 /y && PowerShell.exe -ExecutionPolicy Bypass -File c:\tmp.ps1 && del /f c:\tmp.ps1

P.S . Googeln reduzieren)

0
Alex

Es ist sehr einfach, öffnen Sie Ihre PowerShell und schreiben Sie den folgenden Befehl, wenn Sie über eine Anzahl von ps1-Dateien verfügen. Hier müssen Sie den Pfad mit Ihrem Pfad ändern.

PS C:\Users> Get-ChildItem -Path "D:\downlod" -Recurse | Unblock-File
0
Sapnandu

Versuchen Sie, die set-executionpolicy "Policyname" -Force-Option zu aktivieren. Das Popup-Fenster mit den Warnungen sollte nicht angezeigt werden.

0
swapnil