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

String - Split und remove

$
0
0

Guten Tag,

Ich bin ein Powershell-Anfänger und stehe aktuell von einem Rätsel. Jedoch weiss ich, dass es hier jemand gibt, der mir helfen kann.

Zu meinem Problem:

Ich lese per Get-Content eine .txt-Datei ein. Diese besitzt nichts anderes als ein paar Links; z.B:

  • www.wrike.com
  • www.google.ch
  • test.ch
  • pix.Hallo.ch

Nun benötige ich für die Weiterverarbeitung jedoch nur die Domäne (wrike / google / test / Hallo)

Hat Jemand eine Idee, wie ich diese "rausfiltern" kann?


Besten Dank für eure Hilfe!


Freundliche Grüsse



Returncode von sub Scripten

$
0
0

Guten Morgen,

ich schreibe gerade ein Script über das ich weitere PSScripte ausführe. Jetzt suche ich eine Möglichkeit festzustellen, dass beim Ausführen eines Sub-Scripts ein Fehler aufgetreten ist.

Start-Process powershell.exe ("D:\PS\Sub\test3.ps1 123215") -Wait


Ich habe in den Sub-Script versucht eine globale Var. zu ($Global:GlobError=$Error) definieren, aber ich bekomme darüber kein Ergebnis.

Gibt es vielleicht einen einfacheren Weg?

Liebe Grüße

Norbert


IT Berater

Firefox js datei auslesen und bearbeiten

$
0
0

Hallo PowerShell Profis :)

ich habe von meinem Ausbilder die aufgabe bekommen das ich (am besten mit PowerShell oder ner cmd) es hinbekommen soll aus den Firefox optionen (%APPDATA%\Mozilla\Firefox\Profiles\*.default\prefs.js) im Parameter "user_pref("browser.startup.homepage","");" auslesen soll ob etwas drinsteht und wenn ja dazu noch eine weitere adresse hinzufügen (mehrere startseiten werden durch ein | getrennt) und wenn nicht nur eine reinschreiben. (Firmeninterne adresse)

Hoffe Ihr könnt mir helfen bin ein absolter anfänger mit PowerShell....

Mit freundliche Grüße

Patrick

Powershell führt Script unter Windows 7 und Aufgabenplaner nicht richtig aus

$
0
0

Hallo,

ich habe ein Script erstellt, was folgende macht:

  1. Es wird ein Batch-Script aufgerufen, was Dateien erstellt
  2. Diese Dateien werden nach und nach auf einen FTP-Server hochgeladen
  3. Danach werden die Dateien lokal, nicht auf dem FTP-Server in einen bestimmten Ordner gesichert
  4. Die Dateien werden lokal aus dem Ordner, wohin sie erstellt worden sind gelöscht
  5. Es wird eine Mail mit der Anzahl, der gesicherten Dateien versendet 

Führe ich dies im Kontext von einem bestimmten User aus funktioniert es ohne Probleme. Die einzelnen Schritte werden abgearbeitet. Sobald ich das Script über den Aufgabenplaner ausführen lasse, wird folgendes gemacht:

  1. Das Batch-Script wird aufgerufen und die Dateien erstellt
  2. Die Dateien werden NICHT hochgeladen (Es taucht kein Fehler auf, obwohl ich im try-catch-Block Fehler abfangen lasse.)
  3. Die Dateien werden nicht verschoben
  4. Die Dateien werden gelöscht
  5. Eine Mail wird rausgeschickt, aber die Anzahl der zu gesicherten Dateien wird nicht mitgeliefert. 

Ich habe schon viele probiert. Leider hänge ich an dem Problem schon einige Stunden.
Ich benutze Windows 7 mit aktuellen Patchstand. Der Rechner ist in einer Domäne.
Wie oben schon geschrieben, rufe ich das Script mit einem bestimmten Benutzer von Hand auf, geht es. Wird ein Task erstellt und das Script soll in dessen Kontext ausgeführt werden, wird dies gemacht, aber mit den beschrieben Fehlern.

Kann mir einer sagen, an was das liegen kann?

Danke im voraus,

Rob



Parameter Mandatory abhängig von Wert machen?

$
0
0

Hi zusammen,

ich suche nach einer Möglichkeit einen Parameter nur mit Mandatory $true zu versehen wenn ein anderer Parameter auf $false steht. Ist dies Möglich?

Exchange DistributionGroup Verschachtelung durchforsten

$
0
0

Hi Zusammen,

habe gerade keinen passenden Namen für die Frage gefunden.

Aktuell benötige ich ein Skript, welches sich durch eine Verteilerliste sucht und mir alle Mitglieder ausgibt (get-distributiongroupmember...) . Ist das Mitglied eine Verteilerliste soll wieder ein Suchdurchlauf gestartet werden. Dies soll so lange passieren bis keine Keine Verteilerliste mehr Mitglied in einer Verteilerliste ist.

Hänge aber gerade bei der Umsetzung, bei meinen Ideen gerade bin ich so weit gekommen:

$distgrp = read-host "welche Verteilerliste soll geprüft werden"
$t1 = get-distributiongroup $distgrp -EA SilentlyContinue
if ($t1){
            $member = Get-DistributionGroupMember $distgrp | select Name -ExpandProperty Name
            foreach($user in $member){
                        $TypeCheck = get-recipient $user | select RecipientType -ExpandProperty RecipientType
                        if($TypeCheck -match "Group"){
                                   $ToMember = get-DistributionGroupMember $user | select Name -ExpandProperty Name
                                   write-host "$TypeCheck" -ForeGroundColor Yellow
                                   write-host "$ToMember" -ForeGroundColor Green
                                   Clear-Variable ToMember
                                   Clear-Variable TypeCheck
                        }
                        if($TypeCheck -match "UserMailBox"){
                                   write-host "$user" -ForeGroundColor Green
                                   Clear-Variable TypeCheck
                        }
            }
}
else{
            write-host "Distributiongroup does not exist"
}
hat jemand eine Idee?

2 CSV Dateien per Powershell auslesen

$
0
0

Hallo Leute ich

habe ein Problem mit dem auslesen

$csv1 = Import-CSV 'D:\Test1.csv' -Delimiter ";"
$csv2 = Import-CSV 'D:\Test2.csv' -Delimiter ";"
Compare $csv1 $csv2 -Property IP -Passthru | export-csv 'D:\datei.csv' -Delimiter ';' -NoType -Encoding UTF8

würde gerne in der ersten Test1 die IP und Hostname vergleichen in der Test2.

Mein Problem ist das unterschiedliche Überschriften haben:

Test1    IP und Asset: Name

Test2    IP-Adresse und Host

Gibt es eine Möglichkeit das es klappt habe es bei auch schon mit verschiedenen Symbolen hinter -Demiliter probiert.

Wäre super wenn ihr mir helfen könntet

Textdatei mit PowerShell sortieren

$
0
0

Hallo,

ich hab folgendes Problem.

Ich habe eine Textdatei die verschiedene Server und die dazugehörige Dauer einer Übertragung anzeigt. Nun ist meine Frage, ist es möglich diese Zeilen anhand der MS zu Sortieren ?

Meine Textdatei sieht in etwa so aus:

Server1;20ms

Server2;33ms

Server3;40ms

Server4;12ms

Server5;17ms

Server6;58ms

Vielen Dank für Eure Hilfe.


Ordnerüberwachungsscript PowerShell

$
0
0
Guten Abend Miteinander

Ist es möglich, ein Script für eine Ordnerüberwachung zu erstellen. Das heisst, falls ein Ordner in der Ordnerstruktur gelöscht oder verschoben worden ist, kann man mittels Script herausfinden, wo der verschobene Ordner abgelegt worden ist? Das Script sollte nach der Suche ein Logfile erstellen, der die entsprechenden Resultate liefern soll. Ist dies überhaupt möglich? Wenn ja, wäre ich froh wenn ihr mir einige Tipps geben könntet wie ich anfangen soll. Falls Nein, gibt es vielleicht eine andere Methode den verschobenen Ordner zu finden?

Vielen Dank für eure Bemühungen

Lg
Juiicehead

Frage zu Ausgabe von Arrays in Schleifen

$
0
0

Hallo,

ich habe hier von einer Woche ein Script gefunden und an den Firmeninternebedürfnis angepasst, alle ADGruppen und deren Mitglieder per Powershell in eine CSV Datei zu exportieren.

Heute Morgen habe ich endlich geschafft, dass der Eintrag "GroupName" nur noch die Bezeichung der ADGruppe enthält, statt noch den Pfad. CN=Domänen-Gäste,CN=Users,DC=Adatum,DC=com

Jetzt wird er aber im Stile von: @{Name=Domänen-Gäste} ausgegeben. Nur habe ich erwartet den Eintrag Domänen-Gäste zu erhalten. Was lief da falsch?

$alleGruppen = get-adgroup -filter *
 foreach($Gruppe in $alleGruppen)
 {
   $ADGruppe = get-adgroup $Gruppe |Select-Object Name
   get-adgroupmember -identity $Gruppe|Select-Object GroupName,Name,SamAccountName |Foreach-Object {
    $_.GroupName = $ADGruppe
    $_
	}|Export-CSV c:\tmp\ADGruppeTest1.csv -Append -NoTypeInformation -Encoding unicode
 }

Copy *.png with New-PSDrive

$
0
0

I need to copy all *.png files from c:\ of my pc to  an another pc

If i specify the single file no problem, for example "4.html" but if i want to copy *.png doesn't work !

Any ideas ?

New-PSDrive -Name UNCPath -PSProvider FileSystem -Root $Using:RemotePath -Credential $DomainCredentials
$HTML | Out-File -filepath UNCPath:\4.html
Copy-Item -Include "c:\*.png" UNCPath:\
Remove-PSDrive UNCPath


VBScript: RegKey mit SubKeys über WMI löschen

$
0
0

Hallo zusammen

Ich habe einen Code mit dem ich Registry Keys oder Values aus der Registry über WMI löschen kann. 

Ich habe WMI gewählt, damit ich über die Variable "sArchtct" die 32bit oder 64bit Registry auslesen kann.

Meine Frage: Wie kann ich einen Registry Key mit Subkeys über WMI löschen?
Muss ich die Subkeys zuerst über die Methode EnumKey auslesen und dann einzeln löschen?

Habt ihr dies schon einmal gemacht?

Vielen Dank für die Unterstützung!

Function DelReg64(sRegHive, sRegKey, sRegValue, sArchtct)

  Dim objCtx, objLocator, objServices, objStdRegProv, Inparams, Outparams
  Dim Method
  On Error resume Next

	Set objCtx           = CreateObject("WbemScripting.SWbemNamedValueSet")
	objCtx.Add "__ProviderArchitecture", sArchtct

	Set objLocator       = CreateObject("Wbemscripting.SWbemLocator")
	Set objServices      = objLocator.ConnectServer("","root\default","","",,,,objCtx)
	Set objStdRegProv    = objServices.Get("StdRegProv")
	Select Case sRegValue
	  Case ""
	    Method = "DeleteKey"
		Set Inparams         = objStdRegProv.Methods_(Method).Inparameters
		Inparams.Hdefkey     = sRegHive
		Inparams.Ssubkeyname = sRegKey
	    Set Outparams        = objStdRegProv.ExecMethod_(Method,Inparams,,objCtx)
	  Case Else
	    Method = "DeleteValue"
		Set Inparams         = objStdRegProv.Methods_(Method).Inparameters
		Inparams.Hdefkey     = sRegHive
		Inparams.Ssubkeyname = sRegKey
		Inparams.Svaluename  = sRegValue
	    Set Outparams        = objStdRegProv.ExecMethod_(Method,Inparams,,objCtx)
	End Select

    DelReg64 = Outparams.ReturnValue

	set objCtx = Nothing
    set objLocator = Nothing

End Function

Kann ich mit dem Folderbrowserdialog mehrere Ordner auswählen?

$
0
0

Hi,

Ich benutze zurzeit für ein Skript den Openfiledialog und den Folderbrowserdialog. Meine Frage ist, ob ich genau wie beim Openfiledialog mehrere Ordner mit dem Folderbrowserdialog auswählen kann. Irgendwie bekomme ich das nicht hin...

Opfenfiledialog:

[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null $dialog = New-Object System.Windows.Forms.OpenFileDialog $dialog = New-Object System.Windows.Forms.OpenFileDialog $dialog.FilterIndex = 0 $dialog.InitialDirectory = "C:\" $dialog.Multiselect = $True $dialog.RestoreDirectory = $true $dialog.Title = "Bitte wählen Sie eine Datei aus" $dialog.ShowDialog() $quelle = $dialog.FileNames

Folderbrowserdialog:

	[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null
	$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
	$FolderBrowser.rootfolder = "MyComputer"
	[void]$FolderBrowser.ShowDialog()

	$quelle = $FolderBrowser.SelectedPath


Danke und ein schönes Wochenende :)

Grüße

PowerShell Script mit via Task Scheduler laufen lassen

$
0
0

Hallo

Ich habe Probleme mein PowerShell Script via den Task Scheduler laufen zu lassen.

Es führt das Script zu einem gewissen Grad aus, es öffnet Excel im  Hintergrund, löscht alle Excel Dateien im Ordner und schreibt das Transcript aber es speichert das Excel nicht.
Wichtig zu beachten ist, dass wenn ich es Manuel ausführe es einwandfrei funktioniert.

Ich habe bereits den Ordner erstellt:
C:\Windows\SysWOW64\config\systemprofile\Desktop

Es zeigt mir im Task Scheduler auch keinen Error an.

Ich wäre froh wenn mir jemand dabei helfen könnte.

#Starting Transcript to file
$go = "D:\Transcript.txt:"
Start-Transcript -Path $gitgud

#Silently continus the Script incase an error occures
$ErrorActionPreference = "Silentlycontinue"

#Delete last months Excel so folder wont get too big
$path = "D:\Script"
Get-ChildItem -Path $path -include *.xls, *.xlsx -recurse |
foreach($_) { Remove-Item $_.fullname } | Out-Null

#Create excel COM object
$excel = New-Object -ComObject excel.application

#Make Visible
$excel.Visible = $True
$excel.DisplayAlerts = $false

#Add a workbook
$workbook = $excel.Workbooks.Add()

#Remove other worksheets
1..2 | ForEach {
    $Workbook.worksheets.item(2).Delete()
}

#Connect to first worksheet to rename and make active
$serverInfoSheet = $workbook.Worksheets.Item(1)
$serverInfoSheet.Activate() | Out-Null

#Create a Title for the first worksheet
$row = 1
$Column = 1
$serverInfoSheet.Cells.Item($row,$column)= "Disk Space Information $(get-date -f yyyy-MM-dd)"

$Selection = $serverInfoSheet.Range("A1:F2")
$Selection.Merge()
$Selection.VerticalAlignment = -4160

#Give it a nice Style so it stands out
$serverInfoSheet.Cells.Item($row,$column).Font.Size = 18
$serverInfoSheet.Cells.Item($row,$column).Font.Bold=$True
$serverInfoSheet.Cells.Item($row,$column).Font.Name = "Cambria"
$serverInfoSheet.Cells.Item($row,$column).Font.ThemeFont = 1
$serverInfoSheet.Cells.Item($row,$column).Font.ThemeColor = 4
$serverInfoSheet.Cells.Item($row,$column).Font.ColorIndex = 55
$serverInfoSheet.Cells.Item($row,$column).Font.Color = 8210719

#Increment row for next set of data
$row++;$row++

#Save the initial row so it can be used later to create a border
$initalRow = $row

#Create a header for Disk Space Report; set each cell to Bold and add a background color
$serverInfoSheet.Cells.Item($row,$column)= 'Computername'
$serverInfoSheet.Cells.Item($row,$column).Interior.ColorIndex =48
$serverInfoSheet.Cells.Item($row,$column).Font.Bold=$True
$Column++
$serverInfoSheet.Cells.Item($row,$column)= 'DeviceID'
$serverInfoSheet.Cells.Item($row,$column).Interior.ColorIndex =48
$serverInfoSheet.Cells.Item($row,$column).Font.Bold=$True
$Column++
$serverInfoSheet.Cells.Item($row,$column)= 'TotalSizeGB'
$serverInfoSheet.Cells.Item($row,$column).Interior.ColorIndex =48
$serverInfoSheet.Cells.Item($row,$column).Font.Bold=$True
$Column++
$serverInfoSheet.Cells.Item($row,$column)= 'UsedSpaceGB'
$serverInfoSheet.Cells.Item($row,$column).Interior.ColorIndex =48
$serverInfoSheet.Cells.Item($row,$column).Font.Bold=$True
$Column++
$serverInfoSheet.Cells.Item($row,$column)= 'FreeSpaceGB'
$serverInfoSheet.Cells.Item($row,$column).Interior.ColorIndex =48
$serverInfoSheet.Cells.Item($row,$column).Font.Bold=$True
$Column++
$serverInfoSheet.Cells.Item($row,$column)= '%Free'
$serverInfoSheet.Cells.Item($row,$column).Interior.ColorIndex =48
$serverInfoSheet.Cells.Item($row,$column).Font.Bold=$True

#Increment Row and reset Column back to first column
$row++
$Column = 1

#Getting Server Names
$disk = Get-Content D:\servers.txt, D:\testservers.txt
$servers = Get-Content D:\servers.txt, D:\testservers.txt

#Pinging all servers and writing output to Error file
  foreach ($server in $servers) {
  if (test-Connection -ComputerName $server -Count 2 -Quiet ) {
        Write-Output "$server is alive"
         } else
           { Write-Output "$server seems dead"
             }
}

#Get the drives and filter out CD/DVD drives
$diskDrives = Get-WmiObject win32_LogicalDisk -Filter "DriveType='3'" -ComputerName $disk

#Process each disk in the collection and write to spreadsheet
ForEach ($disk in $diskDrives) {
    $serverInfoSheet.Cells.Item($row,$column)= $disk.__Server
    $Column++
    $serverInfoSheet.Cells.Item($row,$column)=  $disk.DeviceID
    $Column++
    $serverInfoSheet.Cells.Item($row,$column)= ($disk.Size /1GB).ToString("#0.00")
    $Column++
    $serverInfoSheet.Cells.Item($row,$column)= (($disk.Size - $disk.FreeSpace)/1GB).ToString("#0.00")
    $Column++
    $serverInfoSheet.Cells.Item($row,$column)= ($disk.FreeSpace / 1GB).ToString("#0.00")
    $Column++
    $serverInfoSheet.Cells.Item($row,$column)= ("{0:P}" -f ($disk.FreeSpace / $disk.Size))
    $Column++

    #Check to see if space is near empty and use appropriate background colors
    $range = $serverInfoSheet.Range(("A{0}" -f $row),("F{0}"  -f $row))
    $range.Select() | Out-Null

    #Determine if disk needs to be flagged for warning or critical alert

    #Critical threshold
    If ($disk.FreeSpace -lt 5GB)  {
        $range.Interior.ColorIndex = 3

    #Warning threshold
    } ElseIf ($disk.FreeSpace -lt 10GB) {
        $range.Interior.ColorIndex = 6
        }
    #Add row and reset Column for the next Server
    $row++
    $Column = 1

  }

    #Creat Borders for the Data
  $row--
$dataRange = $serverInfoSheet.Range(("A{0}" -f $initalRow),("F{0}"  -f $row))
7..12 | ForEach {
    $dataRange.Borders.Item($_).LineStyle = 1
    $dataRange.Borders.Item($_).Weight = 2
    }

#All numbers from right to left for readability
$border = $serverInfoSheet.Range(("C{0}" -f $initalRow),("F{0}"  -f $row))
7..12 | ForEach {
    $border.HorizontalAlignment = -4152
    }

  #Auto fit everything so it looks better
$usedRange = $serverInfoSheet.UsedRange
$usedRange.EntireColumn.AutoFit() | Out-Null

#Save the file
$workbook.SaveAs("D:\Script\$(get-date -f yyyy-MM-dd) DiskSpace.xlsx")

#Closing the file and releasing it
$excel.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$excel) | Out-Null


#Convert all exels in this Folder and its Subfolders to Pdf
$path = "D:\Script"
$xlFixedFormat = “Microsoft.Office.Interop.Excel.xlFixedFormatType” -as [type]
$excelFiles = Get-ChildItem -Path $path -include *.xls, *.xlsx -recurse
$objExcel = New-Object -ComObject excel.application
$objExcel.visible = $false
foreach($wb in $excelFiles)
{
 $filepath = Join-Path -Path $path -ChildPath ($wb.BaseName + “.pdf”)
 $workbook = $objExcel.workbooks.open($wb.fullname, 3)
 $workbook.ExportAsFixedFormat($xlFixedFormat::xlTypePDF, $filepath)
 $objExcel.Workbooks.close()
}
#Closing the file
$objExcel.Quit()

#Stoping the Transcript
Stop-Transcript

kill -processname Excel


Replace String, klappt nicht

$
0
0

Hallo,

fange gerade an ein bisschen Powershell zu lernen, doch momentan stehe ich vor einem Rätsel.

Es soll ein zu ersetzender String von der Tastatur eingelesen werden, was auch klappt. Dann wird der zu ersetzende String eingelesen, klappt auch.

Wenn ich aber die Strings tauschen möchte, klappt das irgendwie nicht.

Import-Module ActiveDirectory

$i = 0
$ScriptPath = $PSScriptRoot
$SearchString = Read-Host 'Suche nach'

Write-Host 'Gruppen einlesen und speichern.....' -NoNewline
Get-ADGroup -Filter {Name -like $SearchString} | Export-Csv -Path $ScriptPath\export.csv -NoTypeInformation
Write-Output 'Ok'

$Array = Import-Csv -Path $ScriptPath\export.csv

$ReplaceString = Read-Host 'Ersetze durch'

foreach ($object in $Array)
{
    try
    {
       #Write-Host = $ReplaceString
       $Name = (($object).Name).Replace($SearchString,$ReplaceString)
       Write-Host "[+] $($object.Name) wird in $Name umbenannt."
       $i = $i+1
    }
    catch
    {
       Write-Host "[ERR] $($object.Name) wurde nicht umbenannt. ´n$_"
    }
}
$Input = Read-Host 'Änderungen übernehmen ? (J)a (N)ein'
if ($Input -like "j")
{

foreach ($object in $Array)
{
   try
    {
        $Name = (($object).Name).Replace($SearchString,$ReplaceString)
        Set-ADGroup -Identity $object.DistinguishedName -SamAccountName $Name
        Rename-ADObject -Identity $object.DistinguishedName -NewName $Name
        Write-Host "[+] $($object.Name) wurde erfolgreich in $Name umbenannt." -ForegroundColor Green
     }
     catch
     {
        Write-Host "[ERR] $($object.Name) wurde nicht umbenannt. ´n$_" -ForegroundColor Red
     }
}
}
else
{
    break
}



Hilfe bei PowerShell-Skript: zu bestimmten Ordnern das rekursiv ermittelt neueste Änderungsdatum anzeigen

$
0
0

Hallo zusammen,

ich habe rund um PowerShell keinerlei Erfahrungen, soll aber ein Skript basteln das den Datenschutz unterstützt. Ein bisschen bekomme ich hin, scheitere aber offensichtlich recht zügig.

Die Ordnerstruktur ist in etwa Folgende:

\\server\private\{Benutzername}\Kundendaten\{Kundennummer}(\beliebige Unterordner)

Das Skript soll je Benutzer und Kunde das aktuellste Änderungsdatum anzeigen, um schnell feststellen zu können ob Daten länger als 6 Monate nicht mehr angerührt wurden.

In einem ersten Schritt habe ich versucht alle Kundennummern-Ordner zu bekommen und zu speichern:

$Folders = gci "\\server\private\testuser\Kundendaten\" | Where-Object{($_.PSIsContainer)}

Lasse ich die Ordner ausgeben stimmt es auch, es werden keine Datein gelistet

In einem zweiten Schritt habe ich versucht in einem Ordner inklusive Unterordner das aktuellste Datum zu bekommen, das war auch nicht schwer (rekrusiv, nur Dateien, Änderungsdatum holen, absteigend sortieren, nur erstes Ergebnis:

gci "\\server\private\testuser\Kundendaten\1\" -recurse | Where-Object{!($_.PSIsContainer)} | select FullName | sort-object -property @{Expression={$_.LastWriteTime}; Ascending=$false} | select-object -First 1
Soweit auch kein Problem

Nun habe ich versucht beides mit einer foreach Schleife zu verbinden:

$Folders = gci "\\server\private\testuser\Kundendaten\" | Where-Object{($_.PSIsContainer)}

ForEach ($Folder in $Folders) {

    gci $Folder.Fullname -recurse | Where-Object{!($_.PSIsContainer)} | select FullName | sort-object -property @{Expression={$_.LastWriteTime}; Ascending=$false} | select-object -First 1 | format-Table LastWriteTime, $Folder.Fullname

}

Hier hätte ich jetzt erwartet das er je Ordner das aktuellste Datum und den Pfad anzeigt, aber das ist nur halb der Fall: Die Ordner werden korrekt angezeigt, aber als Tabellenüberschirft, und das Änderugnsdatum bleibt leer. Ich vermute das ich nicht den Inhalt, sondern die Überschirften angepasst habe. Kann mir da jemand helfen

Zeilen aus einer Textdatei, Zeilenweise in verschiedene Textdateien schreiben

$
0
0

Hey Leute, 
ich habe folgende Frage. Ich habe eine Textdatei und will nun, dass die Zeilen aus der Textdatei gelesen werden und nacheinander in eine bestimmte Anzahl an Textdateien geschrieben wird.
Ich habs mir ungefähr so vorgestellt:

Anzahl der zu erstellenden Dateien: z.B. 5 festgelegt
Datei mit allen Informationen zeilenweise in Dateien speichern
1       > Datei 1
2       > Datei 2
3       > Datei 3
4       > Datei 4
5       > Datei 5
6       > Datei 1
7       > Datei 2
8       > Datei 3
9       > Datei 4
10      > Datei 5

Vielen Dank 



PowerShell Usergroup Raum Stuttgart

$
0
0

Hallo,

ich versuche derzeit eine PowerShell Usergroup für den Raum Stuttgart zu organisieren.

Hierbei suche ich momentan weitere PowerShell-Experten, die bereit sind, bei der Organisation zu unterstützen, damit sowohl die Regelmäßigkeit als auch die Inhalte der Veranstaltung gewährleistet werden können.

Falls du Interesse hast, hierbei aktiv mitzuwirken, würde ich mich über positive Rückmeldung freuen:

([convert]::FromBase64String("e9PBubfTwbW/S525wcvJscvLb8/N3bnT1b+5x8dJ1dfZ19e9sdPXS7e5") | %{ [char](($_ + 17) / 2) }) -join ""

Bei Interesse einfach "nur" an einer solchen teilzunehmen, kann man mich natürlich auch sehr gerne anschreiben. Ich werde dann informieren, sobald es Neuigkeiten oder Termine gibt.

Mit freundlichen Grüßen,
Friedrich Weinmann


There's no place like 127.0.0.1

Variable mit Text kombinieren

$
0
0

Hallo zusammen,

ich verzweifle hier gerade, wahrscheinlich an einen für euch lächerlichen Problem. Ich will aus einer Datei Namen auslesen, überprüfe dann den Pfad damit und wenn er vorhanden ist, move ich es woanders hin. Hier mal mein Code:

$Benutzer = Get-Content C:\users\bettina\desktop\names.txt
$Data1 = c:\**\$_"

If (Test-Path $Data1)
{
 $Benutzer | ForEach-Object { Move-Item "c:\**\$_" c:\temps\$_ }
}
}

so funktioniert das ganze auch - nur heißt der Pfad bei Data1 der angesprochen wird, leider nicht nur ein name den ich aus der names liste auslese - sondern es steht noch ein CH- davor - also müsste laut meiner logik, dass ganze so heißen:

$Benutzer = Get-Content C:\users\bettina\desktop\names.txt
$Data1 = c:\**\CH-$_"

If (Test-Path $Data1)
{
 $Benutzer | ForEach-Object { Move-Item "c:\**\CH-$_" c:\temps\$_ }
}
}

Ich habs auch schon mit + oder @( , ) versucht - mag er alles nicht - hat wer von euch eine Idee wie das gehen könnte?

Danke und lg

Auslesen 2 Spalten in 2 CSV per script

$
0
0

Hallo Leute,

leider ist Powershell nicht meine stärke und helfen das ihr mir helfen könnt.

Ich habe Powershell 2.0 und möchte gerne in der einen CSV Name und Standort auslesen die befinden sich in Spalte C und D.

In der anderen CSV steht Nachname und Ort und befindet sich in Spalte B und E.

Unter Name und Nachname stehen jeweils die Nachnamen nur das sie eine anderen Spaltennamen habe wie es auch bei Standort und Ort ist.

#einlesen erste Datei
$test_csv = Import-CSV 'D:\Test.csv' -delimiter ";"

#einlesen zweite Datei
$test2_csv = Import-CSV 'D:\Test2.csv' -delimiter ";"

#ergebnis Datei
$csv_test3 = 'D:\Test3.csv'

Compare-Object -ReferenceObject $test2_csv -DifferenceObject $test2_csv -Property "Name";"Standort" -PassThru |
    Where-Object -Property 'SideIndicator' -Value '=>' -EQ |
        Export-Csv -Path 'D:\Test3.csv' -Delimiter ';' -NoTypeInformation -Encoding UTF8

wenn ich es test zeigt er mir immer an das er kein Parameternamen findet und so wie ich gelesen habe und hoffe nicht das ich mich verlesen habe geht es mit Property erst ab Powershell 2.0.

Was kann ich jetzt machen das er 2 Spalten liest und die dann mit der anderen CSV vergleich ob genau das gleiche drin steht und mir halt nur die Anzeigt die nicht übereinstimmen.

Danke für die Zeit und hilfe

Viewing all 2314 articles
Browse latest View live
<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>