menace80 10 Geschrieben 26. Oktober 2012 Melden 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!!
Dukel 468 Geschrieben 26. Oktober 2012 Melden Geschrieben 26. Oktober 2012 Variablen zuweisen geht mit: $variable =
blub 115 Geschrieben 26. Oktober 2012 Melden 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
Dukel 468 Geschrieben 26. Oktober 2012 Melden Geschrieben 26. Oktober 2012 Alternativ: $ComputerName = $env:computername
Bernd W 10 Geschrieben 27. Oktober 2012 Melden 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"} }
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden