menace80 10 Geschrieben 26. Oktober 2012 Melden Teilen Geschrieben 26. Oktober 2012 Hallo zusammen, ich hoffe ich werde hier jetzt nicht gesteinigt, aber ich muss zu meiner Schande gestehen, dass ich als FiSi mit PowerShell absolut nichts am Hut habe :( weshalb ich mir bei meiner aktuell Problematik relativ schwer tue... Ich möchte per Powershell-Script erreichen, dass auf einem PC oder Notebook das entsprechende Hardwaremodell erkannt bzw. ausgelesen wird und dann dem Ergebnis entsprechend ein Netzlaufwerk verbunden wird. folgendes habe ich mir dazu bereits zusammen gestückelt: # Informationen über die Computerhardware auslesen Get-WmiObject Win32_ComputerSystemProduct | Select-Object Name # entsprechendes Netzlaufwerk verbinden if (Name ist 'PC1') {$net = new-object -ComObject WScript.Network $net.MapNetworkDrive("u:", "\\server\freigabe-pc1", $false, "user", "password")} [elseif (Name ist 'PC2') {$net = new-object -ComObject WScript.Network $net.MapNetworkDrive("u:", "\\server\freigabe-pc2", $false, "user", "password")} [elseif (Name ist 'PC3') {$net = new-object -ComObject WScript.Network $net.MapNetworkDrive("u:", "\\server\freigabe-pc3", $false, "user", "password")} [else {Write-Host "Fehler"] mit "Get-WmiObject Win32_ComputerSystemProduct | Select-Object Name" lese ich die entsprechende Hardwareinformation aus, welche ich dann in der if-else Schleife als Argument nutzen möchte um dann das entsprechende Netzlaufwerk zu verbinden. Hier bräuchte ich bitte hilfe, weil ich keine Ahnung habe, wie ich die Ausgabe aus der Hardwareabfrage z.B. in eine Avriable packe, die ich dann für die if-else Abfrage nutzen kann :confused: Besten Dank für Eure Hilfe!! Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 26. Oktober 2012 Melden Teilen Geschrieben 26. Oktober 2012 Variablen zuweisen geht mit: $variable = Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 26. Oktober 2012 Melden Teilen Geschrieben 26. Oktober 2012 Hallo, So in etwa müsste es funktionieren $ComputerName = (Get-WmiObject Win32_ComputerSystemProduct).PSComputername #oder einfacher $ComputerName=(get-childitem env:computername).Value $net = new-object -ComObject WScript.Network switch($ComputerName) { PC1 {$net.MapNetworkDrive("u:", "\\server\freigabe-pc1", $false, "user", "password") } PC2 {$net.MapNetworkDrive("u:", "\\server\freigabe-pc2", $false, "user", "password") } PC3 {$net.MapNetworkDrive("u:", "\\server\freigabe-pc3", $false, "user", "password") } } und zum Nachlesen about_Automatic_Variables about_Switch Passwörter haben in Skripten aber nichts verloren. blub Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 26. Oktober 2012 Melden Teilen Geschrieben 26. Oktober 2012 Alternativ: $ComputerName = $env:computername Zitieren Link zu diesem Kommentar
Bernd W 10 Geschrieben 27. Oktober 2012 Melden Teilen Geschrieben 27. Oktober 2012 $ComputerModell = Get-WmiObject Win32_ComputerSystemProduct | Select-Object Name switch ($ComputerModell.Name.Trim()){ "Latitude D620" {"Es wurde ein Dell Latitude D620 erkannt. Hier den Code zu verbinden des Laufwerks einfügen"} default {"keins erkannt"} } Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.