Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Powershell Skripte über URL für andere Benutzer zugänglich machen

Frage Microsoft Windows Tools

Mitglied: stefan2012

stefan2012 (Level 1) - Jetzt verbinden

06.11.2013, aktualisiert 08.01.2014, 2660 Aufrufe, 10 Kommentare, 3 Danke

Hallo zusammen,
ich hofe ich habe diese Frage hier richtig plaziert.

Ich hab einige Powershell Skripte gebaut. Nun möchte ich diese anderen aus meinem Team zur Verfügung stellen. Ich dachte mir, es wäre mögllich ein Skript über eine einen Webserver für die Auführung bereit zu stellen.

Ich stelle mir das so vor. Jemand ruft eine Webseite auf (http:\\skriptserver\skript1) und dann fängt das Skript an zu laufen.

Das ist zum Beispiel ein Skript was auf allen DC und Linux DNS Servern den DNS Cache sofort löscht.

Das Ziel soll sein, das neimand groß Powershell lernen muss, sondern nur, wenn er die entsprechenden Rechte hat einen kurzen Link aufruft und dann alles von alleine losläuft.
Mitglied: 106543
06.11.2013 um 08:37 Uhr
Wenn das so ist, richte doch eine Freigabe ein, in der die Skripte liegen und gib den Usern eine Verknüpfung zu diesen Scripten.

Grüße
Exze
Bitte warten ..
Mitglied: colinardo
06.11.2013, aktualisiert um 11:29 Uhr
Hallo stefan2012,
das könnte man z.B. mit einem PHP-Script so realisieren:
01.
if (isset($_GET['action']) && $_GET['action'] !== ""){ 
02.
	$action = $_GET['action']; 
03.
	switch ($action){ 
04.
		case 'deleteCache'
05.
			exec('powershell -NonInteractive -File "C:\Scripte\deleteCache.ps1"'); 
06.
			echo "Script '$action' wurde ausgeführt!"
07.
			break
08.
		case 'changeSetting1'
09.
			exec('powershell -NonInteractive -File "C:\Scripte\changeSetting1.ps1"'); 
10.
			echo "Script '$action' wurde ausgeführt!"
11.
			break
12.
13.
}
Dann ruft man z.B. eine Seite folgendermaßen auf um ein bestimmtes Script auszuführen:
http://scriptserver/scripts.php?action=deleteCache
man ändert dann einfach den 'action' Parameter für unterschiedliche Scripte. Und setzt im Script im Gegenzug für diese Action einen entsprechenden Powershell-Aufruf.
Aber bitte entsprechende Sicherheitsvorkehrungen für diese Seiten vornehmen, so dass sie nicht jeder aufrufen kann bzw. nur die autorisierten Personen!

Grüße Uwe
Bitte warten ..
Mitglied: stefan2012
06.11.2013 um 10:20 Uhr
Hallo colinardo,

die Idee hört sich am besten an. Bin kein PHP Crack, dazu brauch ich auf der Windows Maschine eine Möglichkeit PHP zu nutzen. Also Apache for Windows installieren oder kann ich das über den IIS machen?
Bitte warten ..
Mitglied: colinardo
06.11.2013, aktualisiert um 13:26 Uhr
Das selbe Script lässt sich auch in ASP.Net-Seite umsetzen dann brauchst du keinen Apache und PHP

Beispiel
01.
Imports System.Diagnostics 
02.
Partial Class _Default 
03.
    Inherits System.Web.UI.Page 
04.
 
05.
    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
06.
        If Request.QueryString("action") <> "" Then 
07.
            Dim action As String = Request.QueryString("action") 
08.
            Select Case action 
09.
                Case "deleteCache" 
10.
                    Dim newproc As Process 
11.
                    newproc = Process.Start("powershell.exe", "-NonInteractive -File ""C:\Scripte\deleteCache.ps1""") 
12.
                    newproc.WaitForExit() 
13.
                    Response.Write("Script '" & action & "' wurde ausgeführt") 
14.
            End Select 
15.
        End If 
16.
    End Sub 
17.
End Class
Grüße Uwe
Bitte warten ..
Mitglied: stefan2012
20.11.2013 um 10:43 Uhr
wenn auch etwas spät, aber erstmal besten Dank. Durch Grippe bin ich jetzt noch nicht zum testen gekommen.
Aber das werde ich jetzt nachhohlen.

Besten Dank...ich melde mich... und schliesse dann auch den Post.
Bitte warten ..
Mitglied: stefan2012
07.01.2014 um 14:02 Uhr
Hallo Uwe,

jetzt muss ich mich outen. Ich bin auch kein ASP. Experte.
Hab nen Windows 2008R2 Server mit einem IIS laufen. Hab ASP.NET 4.0 freigeschaltet und läuft.
Hab auch erfolgreich eine Seite mit anzeiget. Leider kann ich mit deinem Code Fetzen nicht so viel anfangen.

Wie baue ich das jetzt genau ein?

DANKE im voraus .-)
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.01.2014, aktualisiert 08.01.2014
Zitat von stefan2012:
Hab auch erfolgreich eine Seite mit anzeiget. Leider kann ich mit deinem Code Fetzen nicht so viel anfangen.
Das ist ein Fetzen aus Visual Studio
Wie baue ich das jetzt genau ein?
Also wenn deine Seite Default.aspx heißt erstellst du eine weitere Datei im gleichen Verzeichnis mit dem Namen Default.aspx.vb (Dies ist dann das CodeBehind-File mit der Programm-Logik) und kopierst den obigen Code dort hinein.
Dann musst du noch folgende Zeile im Kopf deiner Default.aspx einfügen
01.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
Aufrufen kannst du das ganze dann wieder so:
http://scriptserver/Default.aspx?action=deleteCache
Grüße Uwe
Bitte warten ..
Mitglied: stefan2012
08.01.2014 um 09:44 Uhr
danke, ich glaube ich stelle mich grade etwas ungeschickt an *lol

Noch bin ich dem ganzen nicht auf der Spur und es läuft noch nicht. Es kommt ein HTTP 404 Requestet URL: Default.aspx

- Also, ich erstelle zum testen eine leere Default.aspx Seite die ausser einer Überschrift nichts anzeiget!
- dann habe ich dein obrigen ASP.NET Code in die Default.aspx.vb gelegt und gespeichert
- dann in die erste Zeile der Default.aspx Seite "<%@ Page Language="..." gepackt
- in dem Code einen simplen PS Shell eingefügt. (get-process)

dann über den Browser über "http://scriptserver/Default.aspx?action=deleteCache" ausgeführt. Also der Action Flag hab ich nicht geändert, dewegen ist der Name noch gleich

Un dann kommt .... Server Error in `/`Application
Es kommt ein HTTP 404 Requestet URL: Default.aspx

Die PowerShell Datei liegt im TEMP Ordner und ist im auch angepasst mit Pfad.

Danke im voraus!
Bitte warten ..
Mitglied: colinardo
08.01.2014, aktualisiert um 10:39 Uhr
Hier das ganze mal in einem Video zusammengefasst, bevor ich mich hier fusselich rede
Bitte warten ..
Mitglied: stefan2012
08.01.2014 um 13:12 Uhr
hey, super, das mit dem Video ist ganz klar TOP!
Aber ich hab doch alles richtig gemacht.

Der Fehler war einfach, das ich einen Unterordner angelegt habe mit dem bereits richtigen skript. Aber in der URL hab ich den vergessen und den Standardpfad verwendet.

Hier lag eine kaputt getestete default.aspx ...


D A N K E!
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Windows Server
Fehler bei Remote PowerShell mit einem Domänen-Benutzer (4)

Frage von xcabur zum Thema Windows Server ...

PHP
gelöst Website einem bestimmten IP-Bereich zugänglich machen (6)

Frage von Thoomaas zum Thema PHP ...

Batch & Shell
Mehrere AD Benutzer aus CSV Datei mit PowerShell erstellen (1)

Frage von windelterrorist zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...