Top-Themen

Aktuelle Themen (A bis Z)

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 Pfad überprüfen

Mitglied: H41mSh1C0R

H41mSh1C0R (Level 3) - Jetzt verbinden

08.12.2015, aktualisiert 19:32 Uhr, 1861 Aufrufe, 11 Kommentare

Hi @ PS Profis,

function Validate-Path
{
	[OutputType([Boolean])]
	param([string]$Path)
	
    if ($Path -eq $null -or $Path -eq "")
    {
		return $false
	}
	
    $invalidChars = [System.IO.Path]::GetInvalidPathChars();

    foreach ($pathChar in $Path)
    {
        foreach ($invalid in $invalidChars)
        {
            if ($pathChar -eq $invalid)
            {
				return $false
			}
        }
    }

    return $true
}

$btn_Hash_Click = {
	$rtb_result.Clear()
	
	if ($tb_FolderSource.Text -gt "") {
		$validate_returnSource = Validate-Path -Path $tb_FolderSource
		
		if ($validate_returnSource -eq $true)
		{
			$rtb_result.AppendText("Pfad gültig: "+$validate_returnSource)
		}
		else
		{
			$rtb_result.AppendText("Pfad nicht gültig: " + $validate_returnSource)
		}		
	}
	else
	{
		$rtb_result.AppendText("Kein Text enthalten `n")
	}
}	
Irgendwie seh ich den Wald vor lauter Bäumen nicht. (oder es ist einfach Zeit für Feierabend)

Er geht mir IMMER in den Zweig:
$rtb_result.AppendText("Pfad gültig: "+$validate_returnSource)
Die äußere if Abfrage erkennt er noch korrekt, also ob was im Textfeld drinnen steht oder nicht.
Die Innere mit der Validierung des Pfades geht immer auf $true.

;(

Gruß vom H41mSh1C0r
Mitglied: 122990
LÖSUNG 08.12.2015, aktualisiert um 19:32 Uhr
N'Abend.
Validate-Path -Path $tb_FolderSource
Fällt dir hier was auf , hier übergibst du das Objekt anstatt des Textes ....

Gruß grexit
Bitte warten ..
Mitglied: colinardo
LÖSUNG 08.12.2015, aktualisiert um 19:32 Uhr
Hallo Heim...,
zum Fehler siehe Kommentar von @Grexit...

Ich mach die Überprüfung von Pfad und Dateiangaben immer mit dieser Funktion:
function Validate-Path( [parameter(Mandatory=$true)][string]$path, [parameter(Mandatory=$true)][ValidateSet('DirectoryName','FileName')]$type){
    switch($type){
       'Directoryname'{if ($path -match "[$(([System.IO.Path]::GetInvalidPathChars() | %{"\x"+([byte][char]$_).toString('X').PadLeft(2,"0")}) -join '')]"){return $false}else{return $true}}
       'Filename'{if ($path -match "^com[1-9]|^lpt[1-9]|^con|^nul|^prn|[$(([System.IO.Path]::GetInvalidFileNameChars() | %{"\x"+([byte][char]$_).toString('X').PadLeft(2,"0")}) -join '')]"){return $false}else{return $true}}
    }
}
Sie hat eine Option zur Überprüfung von purem Pfad
Validate-Path 'C:\ordner' -type DirectoryName
oder einzelnem Dateinamen:
Validate-Path 'dateiname.txt' -type FileName
Vielleicht kannst du es mal gebrauchen

Grüße Uwe
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:29 Uhr
*katsching* =)

Das allein hat allerdings nicht gereicht. =)

-or (Test-path $Path) -eq $false)
Die erste if Abfrage in der Validate Function noch um das obrige erweitert und dann kommt auch dann true oder false wann ich das möchte. =)

Denke das bekomm ich aber noch zusammengestutzt.(morgen) *g*

Gruß und danke dir aus dem Feierabend ^^
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:32 Uhr
Hallo Uwe,

auch dir danke. Ich stricke morgen am Script weiter. =)

Gruß
H41mSh1C0r
Bitte warten ..
Mitglied: 122990
08.12.2015, aktualisiert um 19:35 Uhr
Das allein hat allerdings nicht gereicht. =)
Weiß hier ja keiner was das Skript alles überprüfen / bewirken soll ... Na egal Hauptsache es hat geschnackelt
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:38 Uhr
Das Validate-Path was im Ausgangspost drin ist ist ohne die Anpassung immer auf true gelaufen. =)
Egal was drinnen stand.
Bitte warten ..
Mitglied: 122990
08.12.2015 um 19:47 Uhr
Ach so, ich dachte du prüfst hier nur die Pfad-"Gültigkeit" und nicht die "Verfügbarkeit". Da haben wir uns missverstanden.
Bitte warten ..
Mitglied: colinardo
08.12.2015, aktualisiert um 19:50 Uhr
Zitat von 122990:
Ach so, ich dachte du prüfst hier nur die Pfad-"Gültigkeit" und nicht die "Verfügbarkeit". Da haben wir uns missverstanden.
So dachte ich übrigens auch

Meine Funktionen oben tun auch nur das, also nur die Gültigkeit der Eingaben prüfen und nicht die tatsächliche Verfügbarkeit, das macht ja Test-Path schon.
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:51 Uhr
Der Gedanke war das da gleich mitzuerschlagen.
Bitte warten ..
Mitglied: colinardo
08.12.2015, aktualisiert um 19:53 Uhr
Zitat von H41mSh1C0R:

Der Gedanke war das da gleich mitzuerschlagen.
Ja klar, wenn der Pfad auf dem System unter dem aktuellen Account verfügbar ist, geht das natürlich, gäbe ja auch Situationen in denen das nicht so ist
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:53 Uhr
=) Das grübel ich morgen weiter.

Danke euch beiden und nun ab in den Feierabend. =) =)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Problem mit UNC-Pfad ? powershell-skript
Frage von today12Batch & Shell2 Kommentare

Hallo liebe Community, ich hab ein kleines Verständnis Problem mit UNC-Pfade. ich möchte mein Skript auf ein Netzlaufwerk legen, ...

Batch & Shell

PowerShell Add-Content Pfad mit Leerzeichen

gelöst Frage von timsen-96Batch & Shell7 Kommentare

Es funktioniert nicht, da bei "Config Files" und bei "Default Config" ein Leerzeichen ist. Kann mir jemand helfen und ...

Batch & Shell

PowerShell - Sheduled Task - Script vom UNC-Pfad

gelöst Frage von emeriksBatch & Shell3 Kommentare

Hi, ich will ein PowerShell-Script von einem UNC-Pfad starten. Wenn ich das Script mit einem Domänen-Benutzer starte, welcher lokaler ...

Batch & Shell

PowerShell-VB - Pfad wird bei Parameterübergabe abgeschnitten

gelöst Frage von Pat.batBatch & Shell8 Kommentare

Hallo zusammen, ich stoße momentan auf folgendes Problem: in meinem VB.Net Programm rufe ich ein Powershell Skript auf und ...

Neue Wissensbeiträge
Sicherheit
0-day Schwachstelle im Internet Explorer
Information von kgborn vor 1 TagSicherheit

In Microsofts Internet Explorer gibt es eine 0-day Schwachstelle in der Scripting Engine, die faktisch alle Browser- und Windows-Versionen ...

Internet

Internet-Speedtest Automatisieren via Befehlszeile, cmd, Bash (Windows, Linux, FreeBSD, Mac)

Tipp von anteNope vor 2 TagenInternet3 Kommentare

Also das hier ist irgendwie an mir vorbeigegangen. Einfacher geht es schlicht nicht mehr. Speedtest.cmd Via Aufgabenplanung stündlich oder ...

Administrator.de Feedback

Entwicklertagebuch: Codeblöcke auf unseren Seiten

Information von admtech vor 3 TagenAdministrator.de Feedback8 Kommentare

Hallo Administrator User, Unsere Codeblöcke werden ab sofort anders dargestellt. Die Codeblöcke können nun direkt per Copy&Paste kopiert werden. ...

Humor (lol)
Internet - auch 2020 noch Neuland ?
Erfahrungsbericht von Henere vor 3 TagenHumor (lol)6 Kommentare

Heute eine Mail der Schule meiner Tochter bekommen. Blabla Umweltschutz bla bla siehe Anhang. Dumm nur: Da hab ich ...

Heiß diskutierte Inhalte
Webbrowser
Kann Firefox von Google Suche nicht befreien
Frage von RG2525Webbrowser17 Kommentare

Hallo, Das passiert jetzt in letzter Zeit auf mehreren Computern von mir, dass die Google Suche sich nicht ausschalten ...

Peripheriegeräte
Datenstrom Drucker
Frage von FragefuchsPeripheriegeräte12 Kommentare

Moin, kann mir jemand sagen, wie Computer Daten an einen Drucker weitergeben? Gibt es dafür ein Protokoll oder Format? ...

Sicherheits-Tools
Passwort Manager mit AD anbindung und dt. Oberfläche
gelöst Frage von sani007Sicherheits-Tools12 Kommentare

Hallo Ich suche kostengünstigen Passwort Manager mit AD-Anbindung mit weboberfläche. Am besten mit VM-Image zur schnellen Installation. Wenn es ...

Windows Server
Computerobjekte in AD auf Gerätetyp filtern
Frage von SchroediWindows Server11 Kommentare

Hallo zusammen, gibt es eine Möglichkeit in der AD die Computerobjekte auf Gerätetyp, also Notebook / Desktop-PC in einer ...