Quantcast
Channel: Windows PowerShell Forum
Viewing all 2314 articles
Browse latest View live

PowerShell - Daten von zwei Variablen addieren/zusammenfuehren

$
0
0

Hallo, ich habe folgende Variablen erstellt.

Variable1:

$Daten1 = GWMI -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName .| select  PSComputerName,Description,MACAddress,ServiceName,IPAddress,DHCPEnabled,DHCPServer,DHCPLeaseObtained,DHCPLeaseExpires,DefaultIPGateway,DNSDomain,DNSServerSearchOrder,DNSDomainSuffixSearchOrder,WINSPrimaryServer,WINSSecondaryServer,IPSubnet,DefaultTTL

Variable2:

$Daten2 = GWMI -Class Win32_NetworkAdapter | select DeviceID,InterfaceIndex,ServiceName,Manufacturer,ProductName,Name,Description,TimeOfLastReset,NetConnectionID,AdapterType,Availability,NetConnectionStatus,PhysicalAdapter,NetEnabled,Installed,InstallDate,ConfigManagerErrorCode,ConfigManagerUserConfig,ErrorDescription,LastErrorCode,MaxNumberControlled,PowerManagementCapabilities,PowerManagementSupported,StatusInfo

Jetzt würde ich gerne beide Ergebnisse zusammenführen.

Wenn ich $Daten1 nehme und über =+ $Daten2 hinzufügen möchte, dann erhalte ich folgenden Fehler, auch wenn ich die Abfrage ohne Variable eingebe...

PS C:\windows\system32> $Daten1 =+ $Daten2
方法调用失败,因为 [System.Object[]] 不包含名为“op_Addition”的方法。
所在位置 行:1 字符: 1
+ $Daten1 =+ $Daten2
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (op_Addition:String) [],RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

Was kann ich hier tun? Danke.



PowerShell - Zugriff verweigert, PermissionDenied

$
0
0

 Hallo, ich verwende am Anfang des Skripts

Get-Credential-UserName"Computername\Admin"-Message"Bitte Kennwort eingeben, damit die Änderungen übernommen werden können!"

Obwohl die Eingabe meiner Credentials erfolgreich war, erhalte ich immer wieder die Fehlermeldung "Zugriff verweigert", wenn ich ein Skript per Rechtsklick > "Mit Powershell ausführen" öffne.

Öffne ich eine PowerShell Konsole zuvor als Administrator (Als Administrator ausführen) und gebe hier die Credentials ein, funktioniert die Abarbeitung fehlerfrei.

Hier ein Auszug:

UserName                                Password
--------                                --------
Computername\Admin System.Security.SecureString
Remove-NetIPAddress : Zugriff verweigert
In C:\Temp\IP-Konfiguration_LoadBalancer.ps1:28 Zeichen:16
+ ...  $adapter | Remove-NetIPAddress -AddressFamily $IPType -Confirm:$fals ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (MSFT_NetIPAddre...ystemName = ""):ROOT/StandardCimv2/MSFT_NetIPAddres
   s) [Remove-NetIPAddress], CimException
    + FullyQualifiedErrorId : Windows System Error 5,Remove-NetIPAddress

Remove-NetRoute : Zugriff verweigert
In C:\Temp\IP-Konfiguration_LoadBalancer.ps1:32 Zeichen:16
+     $adapter | Remove-NetRoute -AddressFamily $IPType -Confirm:$false
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (MSFT_NetRoute (...:55:8:8:8:55;"):ROOT/StandardCimv2/MSFT_NetRoute) [
   Remove-NetRoute], CimException
    + FullyQualifiedErrorId : Windows System Error 5,Remove-NetRoute

Remove-NetRoute : Zugriff verweigert
In C:\Temp\IP-Konfiguration_LoadBalancer.ps1:32 Zeichen:16
+     $adapter | Remove-NetRoute -AddressFamily $IPType -Confirm:$false
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (MSFT_NetRoute (...:55:8:8:8:55;"):ROOT/StandardCimv2/MSFT_NetRoute) [
   Remove-NetRoute], CimException
    + FullyQualifiedErrorId : Windows System Error 5,Remove-NetRoute

Remove-NetRoute : Zugriff verweigert
In C:\Temp\IP-Konfiguration_LoadBalancer.ps1:32 Zeichen:16
+     $adapter | Remove-NetRoute -AddressFamily $IPType -Confirm:$false
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (MSFT_NetRoute (...:55:8:8:8:55;"):ROOT/StandardCimv2/MSFT_NetRoute) [
   Remove-NetRoute], CimException
    + FullyQualifiedErrorId : Windows System Error 5,Remove-NetRoute

Remove-NetRoute : Zugriff verweigert
In C:\Temp\IP-Konfiguration_LoadBalancer.ps1:32 Zeichen:16
+     $adapter | Remove-NetRoute -AddressFamily $IPType -Confirm:$false
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (MSFT_NetRoute (...??8;:?8???55;"):ROOT/StandardCimv2/MSFT_NetRoute) [
   Remove-NetRoute], CimException
    + FullyQualifiedErrorId : Windows System Error 5,Remove-NetRoute

New-NetIPAddress : Instance MSFT_NetIPAddress already exists
In C:\Temp\IP-Konfiguration_LoadBalancer.ps1:36 Zeichen:12
+ $adapter | New-NetIPAddress `
+            ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetIPAddress:ROOT/StandardCimv2/MSFT_NetIPAddress) [New-NetIPAddr
   ess], CimException
    + FullyQualifiedErrorId : Windows System Error 87,New-NetIPAddress

Set-DnsClientServerAddress : Für den Client war kein Zugriff auf eine CIM-Ressource verfügbar.
In C:\Temp\IP-Konfiguration_LoadBalancer.ps1:43 Zeichen:12
+ $adapter | Set-DnsClientServerAddress -ServerAddresses $DNS
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (MSFT_DNSClientS...stemName = "2"):ROOT/StandardCi...ntServerAddress)
   [Set-DnsClientServerAddress], CimException
    + FullyQualifiedErrorId : MI RESULT 2,Set-DnsClientServerAddress

Set-DnsClientServerAddress : Für den Client war kein Zugriff auf eine CIM-Ressource verfügbar.
In C:\Temp\IP-Konfiguration_LoadBalancer.ps1:43 Zeichen:12
+ $adapter | Set-DnsClientServerAddress -ServerAddresses $DNS
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (MSFT_DNSClientS...temName = "23"):ROOT/StandardCi...ntServerAddress)
   [Set-DnsClientServerAddress], CimException
    + FullyQualifiedErrorId : MI RESULT 2,Set-DnsClientServerAddress



Wie kann ich das lösen?! Danke.

Simulation eines Maus-Clicks

$
0
0

Ein JavaScript-Fenster im Browser erfordert einen Mausklick (linke Maustaste) auf eine OK-Schaltfäche. Weiß jemand wie sich Derartiges bewerkstelligen ließe ?

Datum's in Textdatei mit PowerShell sortieren

$
0
0

Hallo Leute,

meine Frage ist, wie man verschiedene Zeilen, wie z.B.

GH ................. 24.07.2016
HD ................. 12.09.2016
JD ................. 15.09.2016
KL ................. 15.09.2016
UZ ................. 13.09.2016
TO ................. 11.08.2016

wobei anstelle der Punkte Texte stehen, nach Datum sortieren kann. Ist dies überhaupt möglich ?

Vielen Dank an alle die mir helfen.

MfG

Szabi_123


Daten von sftp laden und in FirebirdDatenbank schreiben

$
0
0

Hallo Liebe Community,

ich hoffe ihr könnt mir weiterhelfen.

Ich habe eine CSV mit Produktdaten. Ich lese mir daraus die Artikelnr und hole mir dann über diese Nummer von einem FTP ein Bild und ein Datenblatt. Nachdem ich diese abgespeichert habe möchte ich das Bild und den Datenblattpfad in eine Firebird-Datenbank schreiben.

Das auslesen und der Download funktioniert schon. Im moment hänge ich am insert des Datenblattpfades. Dazu lese ich erst die lfdnr aus, die mir angibt wie viele datenblätter zu diesem artikel schon vorhanden sind und erhöhe diese um 1. Dann würde ich den Insert zusammenbauen. Er gibt mir bei insertCmd.ExecuteNonQuery() auch 1 zurück, allerdings ist der Pfad zum Datenblatt nicht in der DB. Und ich kann nicht erkennen, Warum? Jemand eine Idee?

Hier mein Code:

Add-Type -Path "C:\Users\Admin1\Desktop\GDI\FirebirdSql.Data.Firebird.dll"
Add-Type -Path "C:\Users\Admin1\Desktop\GDI\WinSCPnet.dll"

$csv = Import-CSV 'C:\Users\Admin1\Desktop\premium_167750.csv' -Delimiter ';'

$DBUser                    = "SYSDBA"
$DBPassword                = "masterkey"
$DBDatabase                = "C:\GDI\GDIBLine\Mandanten\VSH\GDI.GDB"
$DBServer                = "meinLaptop"
$DBPort                    = "meinPort"
$DBDialect                = "3"
$DBCharset                = "Win1252"
$DBRole                    = ""
$DBConnectionlifetime    = "15"
$DBPooling                = "true"
$DBPacketSize            = "8192"

$shopnr = 1
$bed = "VSH"
$kzgeaendert = "1"
$kzloeschen = "0"

$conn=New-Object FirebirdSql.Data.Firebird.FBConnection
$tr = ";"
$connStr =@"
    User=$DBUser$tr
    Password=$DBPassword$tr
    Database=$DBDatabase$tr
    Server=$DBServer$tr
    Port=$DBPort$tr
    Dialect=$DBDialect$tr
    Charset=$DBCharset$tr
    Role=$DBRole$tr
    Pooling=$DBPooling$tr
    Packet Size=$DBPacketSize$tr
"@

$conn.ConnectionString= $connStr

$count = 0
$csv | %{
    $count++
}
$i = 1
$csv | %{
    $partno = $_.Partno

    $conn.Open()
    $fbTrans = $conn.BeginTransaction();

    $query = "SELECT artikelnr FROM adrart WHERE bestnr = '$partno'"

    $cmd=New-Object FirebirdSql.Data.Firebird.FBCommand($query,$conn,$fbTrans)
    $vshnr = $cmd.ExecuteScalar()
    $cmd.Dispose()

    $conn.close()
    
    $pdfname = $partno + "_de_sup.pdf"
    $imgname = $partno + ".jpg"

    $pdfnameNeu = $vshNr + ".pdf"
    $imgnameNeu = $vshNr + ".jpg"

    $pdfpfad = "C:\Users\Admin1\Desktop\GDI\Videor\Datenblätter\$pdfnameNeu"
    $bildpfad = "C:\Users\Admin1\Desktop\GDI\Videor\Bilder\$imgnameNeu"

    $Options = New-Object WinSCP.SessionOptions -Property @{
        Hostname = "ftp.host.com"
        UserName = "user"
        Password = 'password'
        GiveUpSecurityAndAcceptAnySshHostKey = "true"
    }

    $Session = New-Object WinSCP.Session
    $Session.ExecutablePath = "C:\Users\Admin1\Desktop\GDI\winscp.exe"
    $Session.Open($Options)
   
    $transferOptions = New-Object WinSCP.TransferOptions
    $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
 
    $imgDownload = $session.GetFiles("/images/$imgname", $bildpfad, $False, $transferOptions)
   
    $imgDownload.Check()

    $pdfDownload = $session.GetFiles("/datasheets/$pdfname", $pdfpfad, $False, $transferOptions)
 
    $pdfDownload.Check()

    $Session.Close()

    if (Test-Path $pdfpfad){
        $conn.Open()
        $fbTrans = $conn.BeginTransaction();

        $select = "Select max(LFDNR) as MAXLFDNR From Shopdokumente Where ShopNr = 1 and Artikelnr = '$vshnr'"

        $selectCmd=New-Object FirebirdSql.Data.Firebird.FBCommand($select,$conn,$fbTrans)
        $lfdnr = $selectCmd.ExecuteScalar()
        $selectCmd.Dispose()

        $conn.Close()

        if ([string]::isNullOrEmpty($lfdnr)) {$lfdnr = 0}
        else {$lfdnr++}
        $time = Get-Date

        $conn.Open()
        $fbTrans = $conn.BeginTransaction();

        $insert = "INSERT INTO Shopdokumente (Shopnr, Artikelnr, LFDNR, Datlink, Createdatum, Aenddatum, Aendbed, Createbed, KZGEAENDERT, KZLOESCHEN) VALUES ($shopnr, '$vshnr' , $lfdnr, '$pdfpfad', '$time', '$time', '$bed', '$bed', $kzgeaendert, $kzloeschen)"

        $insertCmd=New-Object FirebirdSql.Data.Firebird.FBCommand($insert,$conn,$fbTrans)
        $result = $insertCmd.ExecuteNonQuery()
        $insertCmd.Dispose()

        $conn.Close()
    }else{
        Write-Host "Kein Dokument unter dem Pfad '$pdfpfad' gefunden"
    }

    Write-Host "Artikelnr: $vshnr -> $i von $count Artikel durchlaufen"
    $i++
}

Über jeden Hinweis wäre ich sehr dankbar.

Beste Grüße


PowerShell - Where-Abfragen nach > 2 Attribute filtern

$
0
0

Hallo, wie lässt sich bei Where-Abfragen nach mehreren Eigenschaften oder mehreren Operatoren (mind. > 2) filtern? Gibt es hier Limits?!

Ich will Alle Netzwerkadapter auflisten, die z.B. in der $_.InterfaceDescription oder $_.InterfaceNamereal, oder broad enthalten. Sobald ich eine zweite Abfrage einbaue (egal mit welchem Operator/Eigenschaft), erhalte ich einfach keine Rückmeldung. Wende ich die folgende Abfrage jeweils einzeln an, dann erhalte ich entsprechende Ergebnisse.

Get-NetAdapter | ? {$_.InterfaceDescription -like "real*" -and $_.InterfaceDescription -like "broad*"}

Danke.


VG, ajubana

PowerShell Pfad eines Dienstes

$
0
0

Hallo,

meine Frage ist, wie ich per PowerShell den Namen, den Status, die Versionsnummer(wenn möglich) und den Pfad verschiedener Dienste anzeigen lassen kann. Ist dies überhaupt möglich und wenn ja nur per PowerShell ISE oder auch über die PowerShell-Kommandozeile ?

Vielen Dank schonmal für jede hilfreiche Antwort!

MfG

Szabi

CSV-Datei auslesen, um net use Befehl aufzubauen

$
0
0

Hallo zusammen,

folgendes Problem:

Es gibt eine per Semikolon getrennte TXT-Datei, in der Username1;Username2;Passwort;LW;Pfad stehen.

Ich möchte nun ein Script bauen, welches mit einen Net Use Befehl aufbaut, indem die CSV nach dem Username1 (entspricht dem aktuell in Windows angemeldeten User) durchsucht wird. Für das Verbinden mit dem Laufwerk sollen dann LW, Pfad, Username2 und Passwort verwendet werden.

Wie stelle ich das grundsätzlich an, dass mir die entsprechende Zeile gesucht wird und wie baue ich den Befehl dann auf?

Vielen Dank schonmal!

Philipp


Ordnerstruktur per Script loeschen, welches in der Ordnerstruktur enthalten ist

$
0
0

Hi,

ich habe einen Ordner C:\Test. In diesem Ordner liegt ein Powershellscript mit dem man den Ordner C:\Test mit allen Dateien und Unterordnern löschen kann. Mir ist bewusst das man den Ordner nicht löschen kann da das Script darin ausgeführt wird.

Also hab ich mir gedacht, dass wenn ich in dem Script auf löschen Drücke, ein zweites Script und eine Verknüpfung die dieses Script aufruft, in den Ordner C:\temp kopiert wird und in dem vorherigen Script diese Verknüpfung aufgerufen wird und sich das erste Script beendet.

In dem Script welches nun über die Verknüpfung auf C:\temp aufgerufen wird, wird der Ordner C:\Test gelöscht.

Es zeigt aber trotzdem noch an das der Ordner nicht gelöscht werden kann, da er noch verwendet wird...

Hoffe ich hab es nicht zu kompliziert geschrieben...

Hier mein Code:

Copy-Item C:\Test\Deinstallationsscript.ps1 C:\temp
Copy-Item C:\Test\Deinstallation.lnk C:\temp

start C:\temp\Deinstallation.lnk

$Erstes_Script.close()

Die 2 Dateien werden auch einwandfrei kopiert

start-sleep -seconds 5

Remove-Item C:\Pflegemenü_Data -Force -Recurse 

Ich habe sogar eine 5 Sekundenpause eingefügt damit sich das erste Script richtig beenden kann und trotzdem funktioniert es nicht...

Danke für eure Hilfe und einen schönen Feierabend :)

MfG McMaggi



Daten in Textdatei mit PowerShell sortieren

$
0
0

Hallo Leute,

meine Frage ist, wie man verschiedene Zeilen, wie z.B.

GH ................. 24.07.2016
HD ................. 12.09.2016
JD ................. 15.09.2016
KL ................. 15.09.2016
UZ ................. 13.09.2016
TO ................. 11.08.2016

wobei anstelle der Punkte Texte stehen, nach Datum sortieren kann. Ist dies überhaupt möglich ?

Vielen Dank an alle die mir helfen.

MfG

Szabi_123



Mehrere ForEach Verknüpfen [WOL an mehrere Geräte ohne 3rd Party tool]

$
0
0

Hi zusammen,

folgendes will ich machen:

Die MACs der PCs aus dem DHCP auslesen und an jeden PC ein Magic Packet senden, um sie aufzuwecken.

folgendes habe ich schon:

Auslesen der MACs

$MACS = Get-DhcpServerv4Lease -ScopeId ***.***.***.*** | Where-Object {$_.HostName -like 'PC*'} | select-object -Property ClientId


Für das Senden des Packets habe ich folgendes im Netz gefunden:

$Mac = "MAC-Adresse"
$MacByteArray = $Mac -split "[:-]" | ForEach-Object { [Byte] "0x$_"}
[Byte[]] $MagicPacket = (,0xFF * 6) + ($MacByteArray  * 16)
$UdpClient = New-Object System.Net.Sockets.UdpClient
$UdpClient.Connect(([System.Net.IPAddress]::Broadcast),7)
$UdpClient.Send($MagicPacket,$MagicPacket.Length)
$UdpClient.Close()

Das klappt auch wie gewünscht.

Nun scheitere ich daran, das ganze zu verbinden. Folgenden Ansatz habe ich probiert:

$MACS = Get-DhcpServerv4Lease -ScopeId ***.***.***.*** | Where-Object {$_.HostName -like 'PC*'} | select-object -Property ClientId


$MACS2 = $MACS[1]  <#Zum testen nutze ich nur den ersten Eintrag des Arrays#>



forEach ($mac1 in $MACS2) `
{
$MacByteArray = $mac1 -split "[:-]" | ForEach-Object { [Byte] "0x$_"}
[Byte[]] $MagicPacket = (,0xFF * 6) + ($MacByteArray  * 16)
$UdpClient = New-Object System.Net.Sockets.UdpClient
$UdpClient.Connect(([System.Net.IPAddress]::Broadcast),7)
$UdpClient.Send($MagicPacket,$MagicPacket.Length)
$UdpClient.Close()
}

Dabei bekomme ich folgenden Fehler:

Cannot convert value "0x@{ClientId=b8" to type "System.Byte". Error: "Could not find any recognizable digits."
At line:10 char:56+ $MacByteArray = $mac1 -split "[:-]" | ForEach-Object { [Byte] "0x$_"}+                                                        ~~~~~~~~~~~~~+ CategoryInfo          : InvalidArgument: (:) [], RuntimeException+ FullyQualifiedErrorId : InvalidCastFromStringToInteger

Cannot convert value "0x3e}" to type "System.Byte". Error: "Additional non-parsable characters are at the end of the string."
At line:10 char:56+ $MacByteArray = $mac1 -split "[:-]" | ForEach-Object { [Byte] "0x$_"}+                                                        ~~~~~~~~~~~~~+ CategoryInfo          : InvalidArgument: (:) [], RuntimeException+ FullyQualifiedErrorId : InvalidCastFromStringToInteger


Ich bin noch relativ neu bei Powershell bzw. Scriptsprachen, daher schonmal sorry, falls ich da jetzt einen total simplen Fehler mache, aber mir ist nicht klar, warum das nicht funktioniert, bzw. was das Problem ist. Ich acker mich schon einige Tage durchs Netz und habe aber noch keine Lösung gefunden.

Schonmal danke und Gruß

Marc




Herausforderung beim Get-ADGroupMember

$
0
0

Hallo zusammen,

ich bin neu im PS Scripting und stehe vor einem Problem.

Ich habe folgenden Aufruf:

Get-ADGroupMember  -Identity "CN=SN-User,OU=Softwaregruppen,OU=Nutzergruppen,DC=Ort,DC=Bereich,DC=de" -Server "Prim.Server.de" -Recursive | Get-ADUser | Select SamAccountname,Firstname,  Surname, Mail, extendedAttribute9

Bei Firstname und extendedAttribut9 kommt nur eine Klammer.

Ich gehe davon aus, da dieses in einem anderen Bereich gespeichert ist.

Vorher ohne die Get-ADUser Abfrage hatte ich ähnliches bei den Feldern die um AD-User stehen.

Kann jemand meinen Aufruf optimieren ?

Vielen Dank

Marcus

Powershell - Ersteller einer Gruppe feststellen

$
0
0

Hallo,

wie kann ich über Powershell den Ersteller der Gruppe ermitteln?

Danke

Invoke-Command Varaiblen uebergeben

$
0
0

Hallo,

ich habe derzeit bei einem Schulprojekt die Aufgabe mittels Remote Steuerung auf einem Windowsserver ein Script einzugeben. Das habe ich noch nie gemacht. Das ganze soll über Powershell laufen.

Ich bin nun so weit:

Invoke-Command -ComputerName Server01 -ScriptBlock {
   param ($first,$second)

   Write-Output $first;
   Write-Output $second;
} -ArgumentList $a,$b

Leider funktioniert das Script nicht. Auch wenn ich die Daten anders abrufe um z.B. Dateien zu speichern. Das oben ist nur ein Beispiel. Ich suche nun bereit seit stunden und finde einfach keine Lösung.

Hätte jemand eine Idee?

Danke!

Gruß

Hyper-V Netzwerkauswahl bei VM erstellung

$
0
0

Hallo zusammen

Ich bin am erstellen eines PS Scripts um VM´s in Hyper-V zu erstellen und zu konfigurieren.
Dies hat soweit bestens funktioniert. Nun bin ich aber an dem Punkt an dem ich nur noch ein Script für sämtliche vitruellen Netzwerke haben möchte.

Kleines Beispiel:
Ich habe bis jetzt für jedes vNetz ein eigenes PS Script gehabt.
Darin fix das vNetz und die dazugehörige IP definiert.

Nun möchte ich aber das beim Ausführen des Scripts nach Abfrage des VM Namen (Wie die VM denn heißen soll), eine Abfrage erscheint und mir sämtliche vorhandenen vNetze anzeigt, und ich diese durch drücken der entsprechenden Zahl oder Buchstaben dieser Wert im Script weiterverwendet wird.

#Virtuelle Netze
$VMSwitchName = vNetz1
$VMSwitchName = vNetz2

#Auswahl der Netzwerke
vNetz1 = 1
vNetz2 = 2
usw.

#Erstelle Netzwerk Adapter
Add-VMNetworkAdapter -VMName $VMName -SwitchName $NetAdapter.VMSwitch -Name "Network Adapter $i"

Ich hoffe es ist einigermaßen verständlich erklärt...

Wie mache ich so etwas?
Bin nicht der PS Crack daher die vielleicht etwas doofe Frage.

Aber kann mir hier jemand weiterhelfen?

Besten Dank bereits jetzt.


Setting ImageBrush ImageSource error in Powershell

$
0
0

I have a xaml rectangle:

<Rectanglex:Name=" Width="150" Height="150" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2,2,0,0"><Rectangle.Fill><ImageBrushImageSource="$($PSScriptRoot)\logo.jpg"/></Rectangle.Fill></Rectangle>

and want to change ImageScource based on URL:

$empURL ="https://in.portal.int/Images/Intranet/"+ $empUser.toLower()+".JPG"
$uri =new-object system.uri($empURL)
$imagesource =new-objectSystem.Windows.Media.Imaging.BitmapImage $uri
$imagebrush =new-objectSystem.Windows.Media.ImageBrush  $imagesource
$WPFimage.fill = $imagebrush

It works only one time, after starting PowerGUI script editor, all subsequent changes (even after restart debugging) ending in an error message:

new-object : Exception calling ".ctor" with "1" argument(s): "The system cannot find the file specified. (Exception from HRESULT: 0x80070002)" At C:\Users*****\Desktop\Tool\tl.ps1:113 char:20 +     $imagesource = new-object System.Windows.Media.Imaging.BitmapImage $uri +                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodInvocationException    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

Can you please help me to understand why it's working once, and how to get it to work? Tried also with

<Imagex:Name="image"Source="$($PSScriptRoot)\logo.jpg">

and

$WPFimage.source ="https://in.portal.int/Images/Intranet/"+ $empUser.toLower()+".JPG"

with similar results: the first replacement working OK, than there is a exception.

Dateien in einem Verzeichnis zählen - Gleiche Zeichen am Anfang ignorieren

$
0
0

Hallo,

ich habe eine kleine Herausforderung und bisher leider keine Lösung gefunden.

Ich möchte Dateien zählen, die in einem Verzeichnis liegen. Die Dateien sind z.B. folgendermaßen aufgebaut:

UserID.Domäne.VIA.Client.txt

Um alle Dateien zu zählen würde schon einfach dies genügen: (Get-ChildItem <PATH> "*.VIA.*.txt").count

Es kann vorkommen, dass der Part vor ".VIA." identisch ist. Z.B.

Horst.HEIM.VIA.Client123.txt

Horst.HEIM.VIA.Client456.txt

Ziel wäre es, dass in diesem Fall .count den Wert "1" ausgegeben wird.

Hat jemand ein einfache Idee?

Danke & Grüße

See Bastian

Powershell ISE script speicherung (Kompliziert)

$
0
0

Hallo Community,

und zwar habe ich ein script das mir die CPU und den RAM von mehreren Server ausliest. Dafür fragt das Script erstmal eine Excel ab wo die hostnames der Server drinnen stehen. Dannach werden die ergebnisse in eine neue Excel datei geschrieben. Die ergebnisse werden dann mit dem namen: CPU_Save_05.10.2016 gespeichert (immer das aktuelle Datum natürlich)

So und das was ich jetzt brauche ist:

Dass das Script die Datei in der das gespeichert wird anfangs abfrägt: sind schon datensätze drinnen dann sagt da script beispeilstweise ja es ist 7 mal der Server blabla überprüft worden. Und dann erst wenn wirklich das 7 mal passiert ist (1 Woche) dann soll das Script er die Datei unter dem neuen Datum speichern also 7 Tage später wäre der 12.10.2016

Kann das wer ?

Meine Idee:

Ps1 ausführen --> Speichern [1] als CPU_Save_05.10.2016

Script überprüft ob Daten bereits da sind wenn JA

so oft speichern unter dem Datum bis die 7 Datensätze eingetragen worden sind

wenn Speichern [7] erofolgt dann -->

aktueles Datum nehmen um neue Datei anzulegen

Kann das aber nicht wirklich umsetzen :/

Wie schütze ich meine Powershellskripte?

$
0
0

Hi,

ich habe mehrere Powershellskripte für ein Programmgeschrieben.

Der Benutzer kann über ein Netzlaufwerk, auf das alle Zugriff haben, einen Installer starten mit dem die Skripte auf C:\Programmordner kopiert werden. Es wird ein Verknüpfung auf dem Desktop erstellt mit dem man das erste Skript öffnet und je nachdem welche Aktion man im Programm durchführt werden die anderen Skript aufgerufen.

Das ganze habe ich grafisch mit WindowsForms realisiert.

Die Skripte rufen sich gegenseitig folgendermaßen auf:

$scriptpath = $MyInvocation.MyCommand.Path
$dir = Split-Path $scriptpath

. "$dir\Script1.ps1"
. "$dir\Script2.ps1"
. "$dir\Script3.ps1"

Momentan liegen die Skripte ungeschützt auf C:\Programmordner und können theoretisch von jedem Benutzer manuell ohne die Verknüpfung auf dem Desktop geöffnet werden.

Gibt es eine Möglichkeit die Skripte zu schützen/verschlüsseln, damit man z.B. nach einem Passwort gefragt wird wenn man das Skript öffnen will es aber trotzdem problemlos über die Verknüpfung klappt?

Danke schon im voraus

Grüße :)

Powershell - Properties von Get-WMIObject -Class Win32_Printer auslesen

$
0
0

Hallo, ich würde gern wie in https://msdn.microsoft.com/en-us/library/aa394363(v=vs.85).aspx angegeben den Inhalt der jeweiligen Properties (z.B.PRINTER_ATTRIBUTE_QUEUED, PRINTER_ATTRIBUTE_DIRECT usw.)aus dem Get-WMIObject -Class Win32_Printer auslesen.

Wenn ich z.B. GWMI-ClassWin32_Printer*|selectproperties  eingebe, dann erhalte ich immer nur die Bezeichnungen, siehe Screenshot:

Wie ist die Herangehensweise? Ich habe hier Windows 8.1 und PowerShell 5.0

Danke.


VG, ajubana





Viewing all 2314 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>