Quantcast
Viewing all 2314 articles
Browse latest View live

Gesperrte AD-User finden, welche seit einer bestimmten Zeitspanne gesperrt sind

Hallo zusammen,

ich suche nach einer einfachen Möglichkeit per Powershell gesperrte AD-Accounts zu finden, welche bspw innerhalb der letzten 24 Stunden gesperrt wurden.

Grundsätzlich finde ich hiermit gesperrte AD-Accounts, bei welchen zumindest eine Anmeldung innerhalb der letzten 24 Stunden stattgefunden hat:

Search-ADAccount -LockedOut | Where-Object { $_.LastLogonDate -gt ((get-date) - (New-TimeSpan -hour 24)) }

Nun würde ich aber statt "LastLogonDate" gerne das Attribut "LockoutTime" in gleicher Weise nutzen. Nur muss man hier erstmal das Format anpassen; vermutlich mit dem Befehl "w32tm /ntte ..."

Mein Ziel ist es, ein kleines Powershell-Script zu haben, mit welchem ich alle gesperrten AD-Accounts wieder entsperren kann, jedoch nur die Accounts, welche wie schon geschrieben innerhalb der letzten 24 Stunden (oder eine andere Zeitspanne) gesperrt wurden.

Danke schonmal für die Antwort(en) ;-)


[PowerShell] IF Abfrage- und While-Schleifenprobleme

Hallo,

Ich möchte in Powershell überprüfen, ob ein dort gestartetes Fenster normal Beendet wurde, einen falschen Wert eingegeben wurde oder ob ein richtiger Wert eingegeben wurde. Bei einem Falschen Wert soll alles wiederholen, beim Beenden halt Beenden und bei einem richtigen Wert solls weitergehen (while beenden).

Hier mal mein Code-Problem (SerialConsole.ps1)

$Help = @"
.\SerialConsole.ps1
***PowerShell Serielle Konsole***
********von Pascal Gesell********
Autor: Pascal Gesell
Setzte die PowerShell execution policy auf 'RemoteSigned' um
dieses Script ausführen zu können.
PS> Set-ExecutionPolicy RemoteSigned"@

$stat = $null
$schleife = $true

function MainGUI
{
	[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
	[Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
	$frm = New-Object System.Windows.Forms.Form
	$btn1 = New-Object System.Windows.Forms.Button
	$btn2 = New-Object System.Windows.Forms.Button
	$txtbox1 = New-Object System.Windows.Forms.TextBox
	$lbl1 = New-Object System.Windows.Forms.Label
	$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
	$Handler_btn2_Click=
	{
		$stat = "X"
		$frm.close()
	}

	$Handler_btn1_Click=
	{
		If($txtbox1.Text.Contains("COM") -eq $true)
		{
			$stat = "Y"
			$frm.Close()
		}
		else
		{
			[System.Windows.Forms.MessageBox]::Show("Ungültiger Wert","Fehler",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Exclamation)
			$stat = "N"
			$frm.Close()
		}
	}
	$OnLoadForm_StateCorrection=
	{
		$frm.WindowState = $InitialFormWindowState
	}
	#Size: Weite, Höhe
	$frm.Text = "PE-GUI"
	$frm.Name = "frm"
	$frm.ClientSize = New-Object System.Drawing.Size(200,60)
	$frm.ShowIcon = $false
	$frm.MinimizeBox = $false
	$frm.MaximizeBox = $false
	$frm.CancelButton = $btn1
	$btn1.Name = "btn1"
	$btn1.Size = New-Object System.Drawing.Size(65,20)
	$btn1.Text = "Verbinden"
	$btn1.Location = New-Object System.Drawing.Size(130,30)
	$btn1.add_Click($Handler_btn1_Click)
	$frm.Controls.Add($btn1)
	$btn2.Name = "btn2"
	$btn2.Size = New-Object System.Drawing.Size(65,20)
	$btn2.Text = "Beenden"
	$btn2.Location = New-Object System.Drawing.Size(130,5)
	$btn2.add_Click($Handler_btn2_Click)
	$frm.Controls.Add($btn2)
	$txtbox1.Name = "txtbox1"
	$txtbox1.Size = New-Object System.Drawing.Size(115, 20)
	$txtbox1.Location = New-Object System.Drawing.Size(5, 30)
	$frm.Controls.Add($txtbox1)
	$lbl1.Name = "lbl1"
	$lbl1.Text = "COM-PORT:"
	$lbl1.Size = New-Object System.Drawing.Size(150, 20)
	$lbl1.Location = New-Object System.Drawing.Size(5, 8)
	$frm.Controls.Add($lbl1)
	$InitialFormWindowState = $frm.WindowState
	$frm.add_Load($OnLoadForm_StateCorrection)
	$frm.ShowDialog() | Out-Null
}

If ($Host.Name -match 'ise')
{
	Write-Host "Warnung: Dieses Script muss in der Konsole ausgeführt werden`n`Rechts-Klick auf dem Script und wähle 'Mit PowerShell ausführen'"
	break;
}

while($schleife -eq $true)
{
	MainGUI
	If($stat -eq "N")
	{
		$schleife = $true
	}
	ElseIf($stat -eq "Y")
	{
		$schleife = $false
	}
	ElseIf($stat -eq "X")
	{
		$schleife = $false
		EXIT
		break;
	}
}

break;

Ich wäre sehr dankbar wenn mich jemand in die richtige Richtung schubsen würde, da ich selber neu in der Powershell-Welt bin.

mfg & thx

gfcwfzkm - Pascal


Hoi

Rechte auf einen Ordner setzen, der auf einem anderen Server liegt

Hallo,

ich muss eine txt mit Servernamen einlesen und auf jeden dieser Rechner eine Gruppe hinzufügen und dieser das Recht ändern setzen. Zusätzlich muss das Skript noch prüfen, ob in dem Verzeichnis: Daten$ mehr als ein Ordner mit Namen Logs001, Logs002, usw steht. Jeder dieser Ordner muss das Ändern für diese Gruppe erhalten.

Leider komme ich über get-childitem c:\Daten nicht hinaus. Ich hab noch nicht wirklich Ahnung davon...


Beilage

ACL Verknpfungen bzw. mit ACL auslesen

Hallo,

ich habe ein Probelm an dem ich jetzt schon seit geraum Zeit tüftle, ich würde gernen TerminalServer Profile die älter sind also 6 Monate mit Verzeichnis, LastWriteTime, Identität(IdentityReference) des Berechtigten, Email des Berechtigen und Name/Vorname in eine Excel Liste schreiben lassen, jedoch bekomme ich das nicht so ganz hin deshalb benötige ich hilfe dabei.

Was ich beher schon habe:

ls \\Server\TS-Profile$ | where { $_.LastWriteTime -lt (get-date).addmonths(-6) } | where {$_.attributes -match "Directory"} |select FullName,LastWriteTime,@{Expression={(Get-Acl | Select-Object Path -ExpandProperty Access | where { $_.IdentityReference -like "Domain\Spain*" -or $_.IdentityReference -like "Domain\Germany*" } | Select-Object @{n='Mail';e={ (Get-ADUser -Properties * -Identity $_.IdentityReference.Value.Split("\")[1]).mail }}, @{n='Surname';e={ (Get-ADUser -Properties * -Identity $_.IdentityReference.Value.Split("\")[1]).Surname }}) }} | Export-Csv -Path UNCPath:\Citrix-6Months"-"_$((Get-Date).ToString('MM-dd-yyyy_hh-mm-ss')).csv -notypeinformation -delimiter ";" -encoding utf8;

PS. das script läuft druch ich bekomme aber Statt Email und Nachname immer nur :

 @{ (Get-ADUser -Properties * -Identity $_.IdentityReference.Value.Split("\")[1]).Surname =Mueller}

oder

System.Security.AccessControl.FileSystemAccessRule 

Hilfe wäre echt super.

start-process -wait funktioniert nicht

Hallo,

ich möchte aus einer Powershell heraus ein Batch-File starten und warten bis dieses abgeschlossen ist.  Das Batch File startet ein .exe-Programm und ein weiteres Batch-File.

Ich habe es mit folgenden Aufruf probiert:

start-process 'backupdb.bat' -wait

Das Programm wird zwar sauber gestartet und ausgeführt, allerdings wartet Powershell nicht... Was kann ich tun, dass mein Powershell-Script wartet, bis o.g. batch-Datei komplett abgelaufen ist?

Zusätzlich habe ich das Problem, dass nach erfolgreicher Beendigung der backupdb.bat eine Pause eingebaut ist. Kann aber die Pause im batch-Skript finden. Möchte diese aber auch nur ungern ändern, da es sich hier um ein Backup-Batch vom Hersteller handelt.

Was kann ich tun?

Beste Grüße & Vielen Dank vorab,

Julian. 

Fehler beim Ausführen über "Mit Powershell ausführen"

Schönen Vormittag liebe Powershell-Gemeinde,

ich habe ein Problem beim Ausführen eines Powershell-Skripts und zwar:

Wenn ich mein Powershell-Skript per Powershell ISE bearbeite und dort mit F5 ausführe läuft alles problemlos durch, wenn ich nun aber das Skript speichere und am Desktop mit Rechtsklick -> "Mit Powershell ausführen" ausführe kommt folgende Meldung:

Ausnahme beim Aufrufen von "Remove" mit 2 Argument(en):  "Der Index und die Anz
ahl müssen sich auf eine Position in der Zeichenfolge beziehen.
Parametername: count"
Bei C:\Users\atbrug\Desktop\A1-ConnectScript.ps1:11 Zeichen:29+ [string]$IMSI = $IMSI.Remove <<<< (0,22)             #Mit dem Remove-Befehl e
inige Stellen am Anfang der Zeile entfernen da diese nicht benötigt werden
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException+ FullyQualifiedErrorId : DotNetMethodException

Mein Skript sieht so aus:

$dir = "C:\temp\" 
if( -not (Test-Path $dir) ) #Prüfen ob Verzeichnis existiert, wenn nicht dann erstellen
{    
	New-Item $dir -type directory 
} 
netsh mbn show readyinfo interface=* | findstr "Empfänger-ID" > C:\temp\IMSI.txt #Den String "Empfänger-ID" suchen und in ein TXT-File schreiben
netsh mbn show readyinfo interface=* | findstr "SIM ICC-ID" > C:\temp\SIMICC.txt
[string]$IMSI = Get-Content "C:\temp\IMSI.txt" #Das TXT-File in eine Variable schreiben
[string]$IMSI = $IMSI.Remove(0,22)             #Mit dem Remove-Befehl einige Stellen am Anfang der Zeile entfernen da diese nicht benötigt werden
[string]$SIMICC = Get-Content "C:\temp\SIMICC.txt"
[string]$SIMICC = $SIMICC.Remove(0,23)
#Ein XML-Template erzeugen:
$template = @"<?xml version="1.0" encoding="UTF-8"?> <MBNProfile xmlns="http://www.microsoft.com/networking/WWAN/profile/v1"><Name>A1</Name> <IsDefault>true</IsDefault> <ProfileCreationType>DeviceProvisioned</ProfileCreationType> <SubscriberID></SubscriberID> <SimIccID></SimIccID> <HomeProviderName>A1</HomeProviderName> <AutoConnectOnInternet>false</AutoConnectOnInternet> <ConnectionMode>auto-home</ConnectionMode> <Context><AccessString>a1.net</AccessString> <UserLogonCred><UserName>secret</UserName><Password>secret</Password> </UserLogonCred><Compression>DISABLE</Compression> <AuthProtocol>NONE</AuthProtocol> </Context></MBNProfile>"@
$template | Out-File C:\temp\xmlprofil.xml -encoding UTF8 #Template in einer .xml-Datei ausgeben
$Profil = New-Object xml                #Neues XML-Objekt erstellen
$Profil.Load("C:\temp\xmlprofil.xml")   #XML-Datei in das Objekt laden
$Profil.MBNProfile.SubscriberID = $IMSI #xmlNode-Eigenschaft hinzufügen
$Profil.MBNProfile.SimIccID = $SIMICC
$Profil.Save("C:\temp\xmlprofil.xml")
netsh mbn delete profile interface="Mobile Breitbandverbindung" name="A1" #Vorhandenes Profil löschen
netsh mbn add profile interface="Mobile Breitbandverbindung" name="C:\temp\xmlprofil.xml" #Neues A1-Profil importieren

Die Textfiles in denen die IMSI un die SIMIccID stehen sehen so aus (Leerzeichen sind so):

    SIM ICC-ID       : 8943015505263150454

    Empfänger-ID    : 232018520019045

Hab schon statt .Remove .Substring verwendet und auch die String-Deklaration entfernt, aber es hilft alles nichts. Es kommt immer wieder eine Fehlermeldung wenn ich das Skript über "Mit Powershell Ausführen" starte.

Kann mir jemand helfen?

Vielen Dank im Vorraus!

Mit freundlichen Grüßen,

Gerinom

Mergen von Textfiles in der Reiehenfolge des Erstellungsdatums

Hallo zusammen,

wie kann man am einfachsten per Powershell Script mehrere Textfiles aus einem Verzeichnis in ein textfile mergen in dem der Inhalt der ältesten textdatei am Anfang und der Inhalt der neuesten Textdatei am Ende der Zieldatei steht. Get-content übergibt Files offensichtlich in alphabetischer Reigenfolge. Wie kann ich sie vorher sortieren nach Creation date.

get-content .\*.txt | Add-Content .\combined_files.txt

Vielen Dank für die Hilfe

Markus


AD abfragen nach user wo nur einer Gruppe angehören

Hallo zusammen

Ich habe folgende Problematik, ich soll alle user abfragen die nur und ausschliesslich nur DomänUser sind.

Da ja jeder user eine Domänmember ist aber auch in anderen Gruppen vorhanden sein kann weiss ich nicht wie ich das in Powershell abfangen kann das mir nur die Domänuser angezeigt werden welche in keiner anderen Gruppe member sind.

Kann mir jemand einen Tip geben wie ich das angehen kann?

Bin was powershell angeht ein Neuling und blicke da noch nicht so ganz durch.

Danke für euere Hilfe.

Gruss

Gerry


Get Computer with (partly) names from CSV

Hallo,

Ich hab ein Liste mit Benutzernamen. Der Benutzername ist ein eindeutiger Teil des Computernames. Ich möchte mir alle Computernamen ausgeben lassen deren Namen aus einem Teil der Benutzernamen besteht.

Beispiel:

benutzername: user1 : computername Win7user1-001

$names = Import-Csv c:\usernames.txt
foreach ($name in $names) {
Get-ADComputer -filter { Name -like '*$name*' } | 
Select samAccountName
}

Mein Versuch bring leider kein Ergebnis.

Der Fehler muss wohl in der Array Verareitung liegen denn

$name = "user1"
Get-ADComputer -Filter "Name -like '*$name*'" | ForEach-Object {$_.Name}
bringt ein entsprechendes Erbebnis.

 



Beim signieren des PowerShell-Scripts wird falsches Zertifikat gewählt

Hallo Zusammen,

ich habe vielleicht ein etwas speziellere Frage, auf jeden Fall konnte ich keine Info dazu im Netz finden. Und zwar geht es bei mir um folgendes:

Ich möchte ein PowerShell-Script mit einem selbst erstellten Zertifikat signieren. Ich habe das ganze nun auch schon in einer Testumgebung durchgespielt und es hat soweit gut funktioniert. Auch in der Produktivumgebung konnte ich ein Script schon erfolgreich signieren. Nur seit heute wird aus irgendeinem Grund das falsche Zertifikat genommen. Ich signiere mein Script mit folgendem Befehl auf der PowerShell: Set-AuthenticodeSignature <Script.ps1> @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]

Anstatt mein Zertifikat nimmt er aber das ROOT-Zertifikat meiner CA. Wie kann ich das umgehen? Wie kann ich der PowerShell sagen, welches Zertifikat er zum signieren des Scriptes verwende soll?

mfg
Simon

PC Name wird ignoriert beim versenden von Emails

Hallo zusammen,

ich habe ein merkwürdiges Problem und komm damit nicht weiter, vllt sieht irgendjemand den Fehler. Also das Script soll nichts weiter machen als ein paar vordefinierte Dienste abfragen und eine Email schicken mit denen die gestoppt und gestartet sind.

Im Subject dieser Mail die versendet werden soll, soll der Servername - Dienste - Datum/Uhrzeit stehen. Lasse ich die Variable für den Servernamen raus funktioniert es und mir wird eine Email geschickt aber mit wenn mir der Servername mitgeschickt werden soll bekomme ich keine Email, selbst wenn ich einfach den Namen (an der stelle $mailmessage.Subject = ) des Servers eintrage wird mir keine Mail geschickt. Ich kann alles mögliche eintragen was dann auch im subject Feld erscheint nur den Servernamen mag er nicht.

[array] $arBody 
$arBody = $null 

# Dienste die abgefragt werden sollen 
$servicesArray = ('MSSQLSERVER','SQLSERVERAGENT','SQLBrowser', 'ReportServer', 'SQLWriter', 'MCShield', 'IISADMIN' ) 
 
foreach ($i in $servicesArray) { 
 
$colItems = Get-WmiObject -query "Select * From Win32_Service where name = '$i'" 
foreach ($objItem in $colItems) { 

    if ($objItem.state -ne "Running") { 
           $arbody = $arBody +  "`n<Font color='red'>Der Dienst <b>$i</b> ist nicht gestartet! </font><BR />" + [char]13 + [char]10 
        } 
    else 
        { 
            $arbody = $arBody +  "`nDer Dienst $i ist gestartet. <BR />"+ [char]13 + [char]10  
        }     
}  
} 
$edate = Get-Date
$Server = get-content env:computername

function sendmail($body)
{
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$SmtpClient.Host = "exchangeserver.domain.local"
$mailmessage.from = "Admin@domain.local"
$mailmessage.To.add("zumir@domain.local")
$mailmessage.Subject = "$Server - Dienste - $eDate"
$MailMessage.IsBodyHtml = $True
$mailmessage.Body = $body
$smtpclient.Send($mailmessage)
}
$body = "$arBody"
sendmail $body

Gruß
Markus

Powershell - Dateien nach Suchwörtern durchsuchen

Hallo,

habe ein Powershell Script, was folgende Funktionen bieten soll

- Suche nach bestimmten Dateien, die entsprechende Wörter enthalten

- Exportiere es in eine CSV

Problem

- Wie bekomme ich heraus welche Suchwörter in diesem Dokument gefunden wurden?

Ergebnis sollte wie folgt aussehen

Datei + Gefundene Suchwörter in dieser Datei

Beispiel:

Datei 1     Passwort, User

Datei 2     User

Datei 3    Passwort, User, PWD

Hier mein Script:

$fileName = "C:\Test\FileContent_" + (Get-Date -Format yyyy-MM-dd-HH-mm ) + ".csv"
#$myDrive = "c:/Test"
gci $myDrive -recurse -include *.vbs, *.xml, *.txt, *.cfg, *.ini, *.pwd, *.bat, *.cmd | Select-String  -pattern  "PWD", "USER", "USR", -AllMatches | select name | Export-Csv $fileName -NoType -force

Kann mir hier jemand weiterhelfen? ich verzweifle. Mit der Funktion "select name, match", bekomme ich nicht mein gewünschtes Ergebnis.

Hier bekomme ich nur den Dateipfad und den Namen aber nicht welche Wörter in der Datei gefunden wurden

Gruß


Mamonga


Benutzerattribute per Get-ADUser auslesen und leeres Attribut befüllen, bevor das Ergebnis per Export-CSV exportiert wird

Hallo werte Gemeinde,

ich beschäftige mich noch nicht allzu lang mit der Powershell und habe vor, die AD-User, deren Feld "Mail" noch nicht befüllt ist, mit dem entsprechenden Wert zu befüllen. Das Auslesen (bereits gefiltert) ist kein Problem. Die Emailadresse muss ich aus Vorname, Nachname und Emailsuffix generieren. Dann will ich das Ganze wieder als CSV-Datei exportieren, um die fertige CSV-Datei ins AD zu exportieren. Wie kann ich das Attribut "Mail" befüllen? Danke im Voraus...

mfG K. Richter

import-csv verschachtelt

Hallo,

in einem PS-Script möchte ich zwei csv-Dateien einlesen und für jedes Objekt aus Tabelle 1 mit jedem Objekt aus Tabelle 2 einen Befehl ausführen.

Konkret:

Für jede Verteilergruppe (aus Tabelle 1) möchte für jede Mailadresse (aus Tabelle 2) das Recht setzen, an diese Gruppe zu senden.

import-csv Verteilergruppen.txt |Select-Object Name  |  ForEach-Object{

Set-DistributionGroup $_.Name import-csv Benutzer.txt -Delimiter “;” |  ForEach-Object{
 AcceptMessagesOnlyFromSendersOrMembers $_.Mail
}}

Irgendwo habe ich noch Probleme mit der Syntax, denn Set-DistributionGroup hat als Option AcceptMessagesOnlyFromSendersOrMembers und bräuchte ein - dazwischen.

Wie löst man dies?
Vielen Dank
M. Tobeck

Weg der Replikation darstellen / Script für Site to Site Replikation

Hallo,

ich würde gern mit einem Powershellscript herausfinden, über welchen Weg Änderungen von einer Site zur Anderen gelangen. Damit soll herausgefunden werden, ob mit der Kostenstruktur irgendetwas nicht stimmt.

Nehmen wir mal das Bild http://i.technet.microsoft.com/dynimg/IC195360.gif mit folgenden Kosten:

A-B => 30

B-C => 10

A-C => 10

B-D => 100

A-D => 100

Ich möchte nun in dem Script die Site A und B eingeben und eine Information nach dem Motto erhalten:

"Cheapest links connection

B-C: 10

A-C: 10"

Vielleicht auch in Tabellenform, in der der günstigste Weg als Erster und die anderen mit Gesamtkosten dann darunter angezeigt werden.

Ich hoffe es ist verständlich geworden auf was ich hinausmöchte. Leider krieg ich dabei en paar Knoten im Hirn....Habt ihr dazu eine Idee?

Grüße


IF Abfrage- und While-Schleifenprobleme

Hallo,

Ich möchte in Powershell überprüfen, ob ein dort gestartetes Fenster normal Beendet wurde, einen falschen Wert eingegeben wurde oder ob ein richtiger Wert eingegeben wurde. Bei einem Falschen Wert soll alles wiederholen, beim Beenden halt Beenden und bei einem richtigen Wert solls weitergehen (while beenden).

Hier mal mein Code-Problem (SerialConsole.ps1)

$Help = @"
.\SerialConsole.ps1
***PowerShell Serielle Konsole***
********von Pascal Gesell********
Autor: Pascal Gesell
Setzte die PowerShell execution policy auf 'RemoteSigned' um
dieses Script ausführen zu können.
PS> Set-ExecutionPolicy RemoteSigned"@

$stat = $null
$schleife = $true

function MainGUI
{
	[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
	[Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
	$frm = New-Object System.Windows.Forms.Form
	$btn1 = New-Object System.Windows.Forms.Button
	$btn2 = New-Object System.Windows.Forms.Button
	$txtbox1 = New-Object System.Windows.Forms.TextBox
	$lbl1 = New-Object System.Windows.Forms.Label
	$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
	$Handler_btn2_Click=
	{
		$stat = "X"
		$frm.close()
	}

	$Handler_btn1_Click=
	{
		If($txtbox1.Text.Contains("COM") -eq $true)
		{
			$stat = "Y"
			$frm.Close()
		}
		else
		{
			[System.Windows.Forms.MessageBox]::Show("Ungültiger Wert","Fehler",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Exclamation)
			$stat = "N"
			$frm.Close()
		}
	}
	$OnLoadForm_StateCorrection=
	{
		$frm.WindowState = $InitialFormWindowState
	}
	#Size: Weite, Höhe
	$frm.Text = "PE-GUI"
	$frm.Name = "frm"
	$frm.ClientSize = New-Object System.Drawing.Size(200,60)
	$frm.ShowIcon = $false
	$frm.MinimizeBox = $false
	$frm.MaximizeBox = $false
	$frm.CancelButton = $btn1
	$btn1.Name = "btn1"
	$btn1.Size = New-Object System.Drawing.Size(65,20)
	$btn1.Text = "Verbinden"
	$btn1.Location = New-Object System.Drawing.Size(130,30)
	$btn1.add_Click($Handler_btn1_Click)
	$frm.Controls.Add($btn1)
	$btn2.Name = "btn2"
	$btn2.Size = New-Object System.Drawing.Size(65,20)
	$btn2.Text = "Beenden"
	$btn2.Location = New-Object System.Drawing.Size(130,5)
	$btn2.add_Click($Handler_btn2_Click)
	$frm.Controls.Add($btn2)
	$txtbox1.Name = "txtbox1"
	$txtbox1.Size = New-Object System.Drawing.Size(115, 20)
	$txtbox1.Location = New-Object System.Drawing.Size(5, 30)
	$frm.Controls.Add($txtbox1)
	$lbl1.Name = "lbl1"
	$lbl1.Text = "COM-PORT:"
	$lbl1.Size = New-Object System.Drawing.Size(150, 20)
	$lbl1.Location = New-Object System.Drawing.Size(5, 8)
	$frm.Controls.Add($lbl1)
	$InitialFormWindowState = $frm.WindowState
	$frm.add_Load($OnLoadForm_StateCorrection)
	$frm.ShowDialog() | Out-Null
}

If ($Host.Name -match 'ise')
{
	Write-Host "Warnung: Dieses Script muss in der Konsole ausgeführt werden`n`Rechts-Klick auf dem Script und wähle 'Mit PowerShell ausführen'"
	break;
}

while($schleife -eq $true)
{
	MainGUI
	If($stat -eq "N")
	{
		$schleife = $true
	}
	ElseIf($stat -eq "Y")
	{
		$schleife = $false
	}
	ElseIf($stat -eq "X")
	{
		$schleife = $false
		EXIT
		break;
	}
}

break;

Ich wäre sehr dankbar wenn mich jemand in die richtige Richtung schubsen würde, da ich selber neu in der Powershell-Welt bin.

mfg & thx

gfcwfzkm - Pascal


Hoi


Dateien nach Suchwörtern durchsuchen

Hallo,

habe ein Powershell Script, was folgende Funktionen bieten soll

- Suche nach bestimmten Dateien, die entsprechende Wörter enthalten

- Exportiere es in eine CSV

Problem

- Wie bekomme ich heraus welche Suchwörter in diesem Dokument gefunden wurden?

Ergebnis sollte wie folgt aussehen

Datei + Gefundene Suchwörter in dieser Datei

Beispiel:

Datei 1     Passwort, User

Datei 2     User

Datei 3    Passwort, User, PWD

Hier mein Script:

$fileName = "C:\Test\FileContent_" + (Get-Date -Format yyyy-MM-dd-HH-mm ) + ".csv"
#$myDrive = "c:/Test"
gci $myDrive -recurse -include *.vbs, *.xml, *.txt, *.cfg, *.ini, *.pwd, *.bat, *.cmd | Select-String  -pattern  "PWD", "USER", "USR", -AllMatches | select name | Export-Csv $fileName -NoType -force

Kann mir hier jemand weiterhelfen? ich verzweifle. Mit der Funktion "select name, match", bekomme ich nicht mein gewünschtes Ergebnis.

Hier bekomme ich nur den Dateipfad und den Namen aber nicht welche Wörter in der Datei gefunden wurden

Gruß


Mamonga



Script wiederholen

Hallo.

Ist es möglich ein Script alle X Minuten ausführen zu lassen, wobei der X Wert aus einer .xml gelesen wird. Quasi frei einstellbar.

Gruß



Domänenübergreifend mit Powershell arbeiten

Hallo zusammen

Gerne würde ich von einem Zentralen Monitoring System in der eigenen Domäne und Domänenübergreifend PS Scripte ausführen.

In der eigenen Domäne kein Problem.

Was muss ich beachten um Domänenübergreifend meine Scripts ausführen zu lassen. (z.B. Dienste auf ander Server starten/stoppen)

Welche Ports müssen bei der Firewall geöffent werden?
Reicht es aus nur die Ports zu öffnen?

Kann der Port mit dem Powershell kommuniziert konfiguriert werden?

Besten Dank für eine Antwort.

Gruss Stefan



Mit Inhalten/Werten einer CSV Datei rechnen

Hallo Experten!

Ich habe erfolgreich eine CSV Datei importiert die mehrere Spalten enthält. Unter anderem eine Spalte mit GB die jedoch mit dem Wert 100 zu multiplizieren ist. Wie stelle ich das an?

Habe bisher die Werte der Spalten MID (Maschinen ID) und GB TSM Storage in Arrays gespeichert

ForEach-Object {
    $MID += $_.MID
    $GBTSM +=$_.'GB TSM Storage'
}

diese werden auch ordentlich ausgegeben. Nur, wie rechne ich jetzt mit dem Inhalt der $GBTSM Spalte? Woher weiss Powershell überhaupt, dass es sich um Zahlen und nicht um Strings handelt bzw. wie sage ich ihm das? Bin leider total planlos

danke für eure Hilfe!

lg

tchintchie

Viewing all 2314 articles
Browse latest View live


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