PC über ASPX Seite in Verbindung mit VBS und wake on lan starten
Ein PC soll via Intranet Seite remote gestartet werden
Hallo zusammen,
ich habe hier eine ASPX Seite, welche wiederum auf ein VBS verweist welches dann eine wake.cmd Datei startet, die einen PC im LAN hochfährt. Das alles hat unter Server 2008 hervorragend funktioniert, das manuelle Ausführen der Datei geht auch noch jetzt unter Server 2008.
Was leider nicht mehr funktioniert, ist der Start über die Intranet Seite. Da bekomme ich zwar noch die Melddung, dass mein Sript gestartet wurde, hochfahren tut der Rechner aber nicht. Habe die Files testweise schon mit der Berechtigung "jeder" und Vollzugriff ausgestattet - leider ohne Erfolg.
Hat jemand eine Idee? unten die Daten der oben aufgeführten Files.
Bootsystem.aspx im wwwroot des IIS
<%@ Page Language="vb" AutoEventWireup="false" src="BootSystem.aspx.vb" Inherits="WebForm1"%>
<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 16px" runat="server"
Text="Boot System"></asp:Button>
<asp:Label id="Label1" style="Z-INDEX: 102; LEFT: 16px; POSITION: absolute; TOP: 48px" runat="server"
Width="112px"></asp:Label>
</form>
</body>
</HTML>
ENDE################################
Die VBS Datei im gleichen Verzeichnis welches schließlich die wake.cmd aufruft:
imports Microsoft.VisualBasic
Public Class WebForm1
Inherits System.Web.UI.Page
#Region " Vom Web Form Designer generierter Code "
'Dieser Aufruf ist für den Web Form-Designer erforderlich.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
'HINWEIS: Die folgende Platzhalterdeklaration ist für den Web Form-Designer erforderlich.
'Nicht löschen oder verschieben.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: Dieser Methodenaufruf ist für den Web Form-Designer erforderlich
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Hier Benutzercode zur Seiteninitialisierung einfügen
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call Shell("C:\inetpub\wwwroot\wake.cmd", AppWinStyle.NormalFocus, True)
Button1.Enabled = False
Label1.Text = "Bootrequest send."
End Sub
End Class
Hallo zusammen,
ich habe hier eine ASPX Seite, welche wiederum auf ein VBS verweist welches dann eine wake.cmd Datei startet, die einen PC im LAN hochfährt. Das alles hat unter Server 2008 hervorragend funktioniert, das manuelle Ausführen der Datei geht auch noch jetzt unter Server 2008.
Was leider nicht mehr funktioniert, ist der Start über die Intranet Seite. Da bekomme ich zwar noch die Melddung, dass mein Sript gestartet wurde, hochfahren tut der Rechner aber nicht. Habe die Files testweise schon mit der Berechtigung "jeder" und Vollzugriff ausgestattet - leider ohne Erfolg.
Hat jemand eine Idee? unten die Daten der oben aufgeführten Files.
Bootsystem.aspx im wwwroot des IIS
<%@ Page Language="vb" AutoEventWireup="false" src="BootSystem.aspx.vb" Inherits="WebForm1"%>
<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 16px" runat="server"
Text="Boot System"></asp:Button>
<asp:Label id="Label1" style="Z-INDEX: 102; LEFT: 16px; POSITION: absolute; TOP: 48px" runat="server"
Width="112px"></asp:Label>
</form>
</body>
</HTML>
ENDE################################
Die VBS Datei im gleichen Verzeichnis welches schließlich die wake.cmd aufruft:
imports Microsoft.VisualBasic
Public Class WebForm1
Inherits System.Web.UI.Page
#Region " Vom Web Form Designer generierter Code "
'Dieser Aufruf ist für den Web Form-Designer erforderlich.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
'HINWEIS: Die folgende Platzhalterdeklaration ist für den Web Form-Designer erforderlich.
'Nicht löschen oder verschieben.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: Dieser Methodenaufruf ist für den Web Form-Designer erforderlich
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Hier Benutzercode zur Seiteninitialisierung einfügen
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call Shell("C:\inetpub\wwwroot\wake.cmd", AppWinStyle.NormalFocus, True)
Button1.Enabled = False
Label1.Text = "Bootrequest send."
End Sub
End Class
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 146542
Url: https://administrator.de/contentid/146542
Ausgedruckt am: 05.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
also ohne zu wissen warum dein Vorhaben nicht funktioniert - ein WakeOnLan Befehl in ASP.Net ist auch ohne Hilfmittel möglich!
(Übrigens ist das zweite kein VBS sondern wohl eher die CodeBehind-Klasse der ASP.Net-Seite ;))
Hier mal eine Funktion, die ein MagicPaket sendet, in VB (kein Gewähr für Richtigkeit da übersetzt aus C# mit einem Online-Tool)
Gruß
Bernd
also ohne zu wissen warum dein Vorhaben nicht funktioniert - ein WakeOnLan Befehl in ASP.Net ist auch ohne Hilfmittel möglich!
(Übrigens ist das zweite kein VBS sondern wohl eher die CodeBehind-Klasse der ASP.Net-Seite ;))
Hier mal eine Funktion, die ein MagicPaket sendet, in VB (kein Gewähr für Richtigkeit da übersetzt aus C# mit einem Online-Tool)
''' <summary>
''' Diese Funktion startet einen Rechner über das Netztwerk mittels MagicPacket
''' </summary>
''' <param name="MACAddress">Die MAC Adresse des zu startenden Rechners bzw. dessen Netzwerkadapter</param>
Public Sub WakeOnLAN(ByVal MACAddress As String)
Dim Client As New UdpClient
Dim Count As Integer = 0
Dim ByteArray(1024) As Byte
Dim Pos As Integer = 0
Client.Connect("255.255.255.255", 12287)
Client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0)
For i As Integer = 0 To 5
Count += 1
ByteArray(Count) = &HFF
Next
For i As Integer = 0 To 15
Pos = 0
For n As Integer = 0 To 5
Count += 1
ByteArray(Count) = Byte.Parse(MACAddress.Substring(Pos, 2), Globalization.NumberStyles.HexNumber)
Pos += 2
Next
Next
Client.Send(ByteArray, 1024)
End Sub
Bernd