PowerShell Script Hilfe
Will mir hier ein kleines Tool für mich zusammenbasteln mit PowerShell
Hallo Zusammen
meine Frage lautet, warum übergibt dieses Script nicht, wenn ich eine IP oder Host-Name eingebe, wo auch im Netz erreichbar sind, an das Menü ?
das hier ist mein Script:
$CPName = Read-host "Bitte tragen Sie die IP oder FQDM ein" #ComputerName oder IP eintragen"
$P = Get-WmiObject Win32_PingStatus -filter "Address='$CPName'" #Check ob Client Alive ist#
if($P.StatusCode -eq 0) {GetMenu}
else{"Host $CPName down";Exit}
function GetMenu {
"$CPName"
"Administrator Tools"
"1 Bios"
"2 Ping ausführen"
"3 OS auslesen"
""
$Menü = Read-Host "Bitte auswählen" }
switch ($Menü) {
1 {Get-WmiObject -Class win32_Bios -ComputerName $CPName} #BiosVersion Remote auslesen#
2 {Get-WmiObject Win32_PingStatus -filter "Address='$CPName'"} #Ping Ausführen#
3 {Get-WmiObject Win32_Operatingsystem -ComputerName $CPName} #OS auslesen#
}
Danke für eure Hilfe im Vorraus
Hallo Zusammen
meine Frage lautet, warum übergibt dieses Script nicht, wenn ich eine IP oder Host-Name eingebe, wo auch im Netz erreichbar sind, an das Menü ?
das hier ist mein Script:
$CPName = Read-host "Bitte tragen Sie die IP oder FQDM ein" #ComputerName oder IP eintragen"
$P = Get-WmiObject Win32_PingStatus -filter "Address='$CPName'" #Check ob Client Alive ist#
if($P.StatusCode -eq 0) {GetMenu}
else{"Host $CPName down";Exit}
function GetMenu {
"$CPName"
"Administrator Tools"
"1 Bios"
"2 Ping ausführen"
"3 OS auslesen"
""
$Menü = Read-Host "Bitte auswählen" }
switch ($Menü) {
1 {Get-WmiObject -Class win32_Bios -ComputerName $CPName} #BiosVersion Remote auslesen#
2 {Get-WmiObject Win32_PingStatus -filter "Address='$CPName'"} #Ping Ausführen#
3 {Get-WmiObject Win32_Operatingsystem -ComputerName $CPName} #OS auslesen#
}
Danke für eure Hilfe im Vorraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 203249
Url: https://administrator.de/contentid/203249
Ausgedruckt am: 14.11.2024 um 21:11 Uhr
11 Kommentare
Neuester Kommentar
Kann ich aus dem Stehgriff jetzt nichts sagen, da ich mit powershell und "switch" nie arbeite. Benutz mal "if" und "else if" .
Edit: Ausserdem kenne ich es aus C, dass bei dem ersten zutreffenden Fall in einer Switch Abfrage, alles ab dieser Position durchgeführt wird. Es sei denn am Ende steht ein "break".
Edit: Ausserdem kenne ich es aus C, dass bei dem ersten zutreffenden Fall in einer Switch Abfrage, alles ab dieser Position durchgeführt wird. Es sei denn am Ende steht ein "break".
...
Edit:
Sorry habs auf die schnelle falsch geschrieben.
Die schleife läuft so lange der Wert in Menu ungleich 4 ist. Wenn er 4 ist, bricht die Schleife ab.
do{
$Menu
"$CPName"
"Administrator Tools"
"1 Bios"
"2 Ping ausführen"
"3 OS auslesen"
""
$Menu = Read-Host "Bitte auswählen"
if ($Menu -eq 1) {
Get-WmiObject -Class win32_Bios -ComputerName $CPName}
if ($Menu -eq 2) {
Get-WmiObject Win32_PingStatus -filter "Address='$CPName'" }
if ($Menu -eq 3) {
Get-WmiObject Win32_Operatingsystem -ComputerName $CPName; Pause }
}while($Menu -ne 4)
Edit:
Sorry habs auf die schnelle falsch geschrieben.
Die schleife läuft so lange der Wert in Menu ungleich 4 ist. Wenn er 4 ist, bricht die Schleife ab.