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

Excel datei

$
0
0

Hallo Leute ich benötige Hilfe bei meinem Script und habe auch schon angefangen aber finde nicht den Fehler. Mit dem Script möchte ich tägliche Datei öffnen also die Aktuellsten. Das Format ist .csv  und sie liegen immer im gleichen Ordner und heißen als Bsp.:

2016-07-31-09-15_S12_Komplette_Detail.csv

und am folgenden Tag

2016-08-01-10-13_S12_Komplette_Detail.csv



$quelle = 'D:\Excel\*.csv'

$objExcel = New-Object -Com Excel.Application

$LastFile = *_DailyFile
$compareDate = (Get-Date).AddDays(-1)
$LastFileCaptured = Get-ChildItem -Recurse -Path '\Excel\*.csv' |
Sort-Object -Property LastWriteTime -Descending:$true |
Select-Object -First 1

Wollte noch fragen ob mir jemand sagen kann was ich Eintragen muss im Script wenn von Spalte D in A bekomme so das Spalte A und die Folgenden eine weiterrücken.

danke schonmal für eure Zeit und Ideen.


User zum Ausführen von PowerShell -Scripten

$
0
0

Guten Tag!

Ich möchte auf einem Windows 2012 R2 Server ein PowerShell-Script automatisch mit Windows Tasks ausführen.

Für die Ausführung des Tastks möchte ich einen User erstellen, der nicht gleich DC-Adminrechte haben soll. Reicht es dabei aus, wenn er die nötige PowerShell-Ausführungrechte (ExecutionPolicy) hat?

Oder gibt es für diesen Fall eine Empfehlung von Microsoft?

VG

PowerShell Script - Daten auslesen und sortieren

$
0
0

Hallo zusammen

Ich habe eine kurze Frage. Ich lese aus einer CSV Datei mit Foreach und IF/Else 2 Spalten aus. Nun will ich die Ausgabe Filtern, weiss aber leider nicht wie ich dies realisieren kann. Die Spalten und Daten sehen so aus:

Spalte 1Spalte 2

1test

1test

2test

1test1

1test1

1test1

2test2

3test4

1test4

3test4

Ich will nun nur die Zeilen ausgeben, bei denen in der Spalte 1 alle Werte gleich sind. Das heisst in diesem Beispiel würde nur Test1 und Test2 ausgegeben werden. Test und Test4 haben unterschiedliche Werte. Test1 und Test2 haben aber in der Spalte 1 immer die gleichen Werte.

Kann mir jemand da einen Tipp geben wie ich solch ein Script mache? Mein Problem ist es die Werte der IF/Else Abfrage in Variablen zu Speichern. Wenn ich wüsste wie dies geht, könnte ich eine zweite IF/Else machen mit den Variablen, die diese Werte enthalten.

Bin um jede Hilfe dankbar.

Probleme beim Auslesen von Gruppenmitgliedschaften

$
0
0

Hallo zusammen,

nachdem ich die Googleartikel schon auswendig kenne und leider immer noch keine Lösung habe, möchte ich meine Frage gerne hier stellen. Ich bin neu hier im Forum und auch noch blutiger Anfänger was PowerShell betrifft, deswegen möchte ich mich erstmal mit simplen Befehlen, die ich bei meiner täglichen Arbeit einsetzen kann, dem Thema nähern. Somit versuche ich so weit Möglich Schritte von der GUI auf die Powershell zu verlagern (auch, wenn PS dafür mehr Zeit in Anspruch nehmen würde)

Ich habe ein Problem bei einer simplen Aktion, nämlich auslesen der Mitgliedschaften eines Users. Ich lasse mir die Informationen eines Users anzeigen (get-aduser) und bekomme auch die gewünschten Infos.

Möchte ich mir die Gruppenmitgliedschaften anzeigen lassen (hierzu habe ich 2 Befehle gefunden, ich weiß noch nicht so Recht, welcher davon der richtige ist, aber beide melden den gleichen Fehler), erhalte ich eine Fehlermeldung.

PS C:\Windows\system32> Get-ADAccountAuthorizationGroup -Identity TESTUSER
Get-ADAccountAuthorizationGroup : An unspecified error has occurred
At line:1 char:1
+ Get-ADAccountAuthorizationGroup -Identity TESTUSER
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (TESTUSER:ADAccount) [Get-ADAccountAuthorizationGroup], ADException
    + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADAccountAuthor
   izationGroup

Es ist auch völlig egal, ob ich einen Namen, eine SID oder sonstwas nehme, der Fehler ist immer dieser. Ich befinde mich direkt auf einem DC mit Server 2012. Habe mehrere DCs, auf allen das gleiche Ergebnis.

Kann mir hier jemand helfen? Was mache ich falsch?

Danke im Voraus

Beste Grüße

PaWäl

Powershell. Textdatei vorne etwas beifügen.

$
0
0

Ich möchte bei einer Textdatei vorne etwas beifügen. Also ich meine es steht z.b. Hallo und ich möchte das aber danach steht Chreys Hallo. Mit Add-Content wird das nach ganz hinten geschrieben aber wie kann ich es nach ganz vorne bringen? Und wie kann ich außerdem machen das wenn jetzt Chreys Hallo steht das ich das Chreys wieder entferne? Also der Befehl. Und noch eine Frage. Wie kann ich etwas dazuschreiben wenn z.b. Hallo steht aber danach soll Halllllllllo stehen. Das ich l's einfügen kann.

Liebe Grüße Chreys

Powershell. Eine Zeile lesen

$
0
0
Ich möchte aus einer 1 GB Datei nur ganz vorne ein Zeichen hinzufügen jedoch nicht alle Zeilen lesen da sonst das zu lange dauert. Also suche ich nach einem Script wo man nur am anfang etwas dazu schreiben muss. Außerdem würde ich auch gerne wissen wie das geht das man dieses eine Zeichen wieder löscht also ebenfalls nicht alles lesen. Danke im Vorraus

Powershell Skript als Administrator starten auf verschiedenen Systemen

$
0
0

Hallo zusammen,

ich habe das Problem das mein Powershell Skript vom USB Stick als Administrator gestartet werden muss.

Jetzt ist ja die Execution Policy standardmäßig auf restricted gestellt und damit alles komfortabler startet wollte ich es durch eine CMD Bat datei erstmal so einrichten das die Powershell Temporär Unrestricted ist und danach mein Skript als Administrator ausführt.

Aktuell bin ich etwas am verzweifeln da mein CMD Fenster als Administrator einfach direkt zu geht ohne Meldung "PAUSE" ignoriert der einfach. Und als normales Bat File hat er keine Berechtigung.

Ich meine das es erst seit Windows 10 so ist davor auf 7 hat es gut funktioniert.

Wie bekomme ich es hin das mein Skript vom Stick startet als administrator.

Ich bitte um Hilfe.

Mit freundlichen Grüßen

Rafael

Powershell und das Outlook NewMail(Ex) Event

$
0
0

Hallo,

ich hab ein PS Script erstellt, welches zyklisch versch. Aktionen in Outlook durchführt. Leider ist das alles Timer gesteuert. Gibt es eine Möglichkeit, wenn Outlook (2010) geöffnet ist, per PS abzufragen, ob eine neue Mail eingegangen ist?

Vielen Dank


Get-Service, Verbindung aufbauen dauert zu lange

$
0
0

Hallo liebe PS-Community,

ich habe derzeit ein Powershell-Script, welches in einem benutzerdefinierten Intervall checkt, ob bestimmte Services auf festgelegten Servern laufen. Ein festgelegter User bekommt eine Meldung (per Mail oder Pop-Up) und der Service wird je nach Einstellung neugestartet.

Mir ist nun aufgefallen, das wenn ich in einer neuen Session das erste mal die Services von einem Server überprüfe, das Powershell recht lange für den Verbindungsaufbau braucht. Bei der 2ten, 3ten usw. Überprüfung in der gleichen Session, geht alles in sekundenschnelle.

Ich habe im Internet dazu leider nichts gefunden und frage mich nun woran das liegt und ob man das ganze umgehen kann?

Vielen Dank im Voraus. :-)

Liebe Grüße

-Lars



PS script | Variable wird ohne befehl auf vorherigen Wert zurückgesetzt

$
0
0

Hallo,

Ich hoffe ihr könnt mir bei diesem Problem helfen :D
Falls ich Informationen hier reinzuschrieben vergessen habe sagt es mir bitte.
Mein Problem:

In diesem Script habe ich die Variable $date diese wird ganz am anfang auf ERROR umgeschrieben (damit ich weis ob das script das erste mal durchläuft oder nicht)
später wird sie dann im $fancy block (eigentlich ist das ja eine Variable mit Code drinnen, kann ich das Block nennen?)
auf das momentane Datum + Uhrzeit umgeschrieben.
Damit wird die Output.txt auf das momentane Datum + Uhrzeit.txt umbenannt.
sobald das Script aber jetzt das IF ELSE in welchem wir uns gerade befinden verlässt wird $date wieder in ERROR umgechrieben obwohl das Script wenn ich in Einzelschritten durchgehe nie auch nur irgendwie in die nähe von etwas kommt was es umschreiben könnte (jedenfalls visuel) 

#Hier steht alles was nicht wiederholt werden darf/muss.
$host.ui.RawUI.WindowTitle = "S.D.A.R. , System Details Agent Remote"
$date = "ERROR"
$cdrive = "y"
$cos = "y"
$ccpu = "y"

#Hier wird je nachdem welchen Inhalt die Variabeln haben ausgesucht welche Informationen alles gelesen werden.

$sort = {
	if($cdrive -eq "y"){&$coredrive
	}
	if($cos -eq "y"){&$coreos
	}
	if($ccpu -eq "y"){&$corecpu
	}
}

#Informationen zu den Festplatten werden hier ausgelesen:

$coredrive = {
    Try{
    Write-Host "@@@@@@@@ Festplatten Details @@@@@@@@" -backgroundcolor Blue  -foregroundcolor White
    Get-WmiObject -ComputerName $Hostname win32_logicaldisk -Namespace "root\CIMV2" | select @{label='Host Name';Expression={$_.SystemName}},@{label='Festplatten Name';Expression={$_.deviceid}},@{label='Gesammt Größe(GB)';Expression={[math]::truncate($_.size/1gb)}},@{label='Freier Platz(GB)';Expression={[math]::truncate($_.Freespace/1gb)}}| ft -AutoSize
	}
	Catch{
	Write-Host "Error beim sammeln der Informationen, Festplatten"
	}
}

#Informationen zum OS und zum System werden hier ausgelesen:

$coreos = {

	Try{
    Write-Host "@@@@@@@@ System Basic Details @@@@@@@@" -backgroundcolor Blue  -foregroundcolor White
    Get-WmiObject -Class Win32_computerSystem -Namespace  "root\CIMV2" -ComputerName $Hostname |select @{label='Host Name';Expression={$_.Name}},@{label='Manufacturer Name';Expression={$_.Manufacturer}},@{label='Model Name';Expression={$_.Model}},@{label='Anzahl der CPU`s';Expression={$_.NumberOfProcessors}},@{label='Gesammter Ram(MB)';Expression={[math]::truncate($_.TotalPhysicalMemory/1mb)}}| ft -AutoSize
    Get-WmiObject -ComputerName $Hostname win32_bios | Select Manufacturer,SerialNumber | Format-Table -AutoSize
    Get-WmiObject -computername $hostname win32_OperatingSystem -Namespace "root\CIMV2" | select @{label='Host Name';Expression={$_.Csname}},@{label='Betriebssystem';Expression={$_.Caption}},@{label='ServicePack Name';Expression={$_.CSDVersion}},@{label='Freier Ram(MB)';Expression={[math]::truncate($_.FreePhysicalMemory/1kb)}},@{Label='Lastbootuptime' ;Expression={$_.converttodatetime($_.lastbootuptime)}} |Format-Table -AutoSize
	}
	Catch{
	Write-Host "Error beim sammeln der Informationen, OS"
	}
}

#CPU Informationnen werden hier ausgelesen:

$corecpu = {

 	Try{
    Write-Host "@@@@@@@@ CPU Details @@@@@@@@" -backgroundcolor Blue -foregroundcolor White
    Get-WmiObject win32_processor -Namespace "root\CIMV2" -ComputerName $hostname |select @{label='CPU Name';Expression={$_.Name}},@{label='Anzahl der Kerne';Expression={$_.NumberOfCores}},@{label='Anzahl der Threats';Expression={$_.NumberOfLogicalProcessors}}| ft -AutoSize
	}
	Catch{
	Write-Host "Error beim sammeln der Informationen, CPU"
	}
}

#Hier Wird alles vorbereitet um es in eine Datei zu schreiben.
#Nachdem die Formatierung fertig ist wird die Datei erstellt und fals notwendig mit einer anderen Datei zusammengeführt.

$fancy = {
    $(
        $leer1 = "                          "
        $leer2 = "                           "
        $count = $hostname.length
        Write-Host "$count"
        do{
            $leer1 = $leer1.remove(1,1)
             $leer2 = $leer2.remove(1,1)
             $count = $count - 2
            Write-Host "$count"
        } while ($count -gt 1)
        if ($count -eq 1){
            $leer2 = $leer2.remove(1,1)
        }
        Write-Host "╔═══════════════════════════════════════════════════════╗"
        Write-Host "║$leer1 $hostname $leer2║"
        Write-Host "╚═══════════════════════════════════════════════════════╝"

#vom Anfang des Blockes bis hier wird die Überschrift in der txt Datei erstellt

        &$sort	#Wenn die Informationen in eine Datei geschrieben werden sollen werden hier nochmal die wmi's ausgeführt
				#Gäbe es eine Möglichkeit, dass ich die wmi's nicht zwei mal ausführen muss?,
				#dass es in die Konsole geschrieben wird und gleichzeitig in die Datei?

	) *>&1 > output.txt
	Read-Host $date #Nur zur Spurensuche wo der Fehler liegt, welchen ich suche (Frage im Forum)
    if ($date -eq "ERROR" ){	#um beim Parameter -oti nur einmal das Datum auszulesen, sonst wäre es um einiges schwieriger die Datein zusammenzuführen
        $date = Get-Date -Format d.M.yyyy-h.m.s
        Rename-item output.txt -newname "$date.txt"	#Datei muss ich hier umbenennen, da ich 4 Zeilen weiter oben nicht eine Variable als Datei Namen benutzen kann
    } else {
        Get-Content .\output.txt | Add-Content .\$date.txt	#Zusammenführen der Datein
        Remove-Item .\output.txt
    }
	Read-Host $date #Nur zur Spurensuche wo der Fehler liegt, welchen ich suche (Frage im Forum)
}

#Grundblock der Kern der geschichte, hier wird entschieden wann, was, wo gemacht wird.

$wholesdar = {
    CLS
    $Hostname= Read-Host "Host Name oder IP eingeben" 	#Einlesen des Hostnamens, folgend auswertung der Parameter
	if ($hostname -like "* -*") {
		if ($hostname -like "* -oti*"){
	        $hostname = $hostname.Replace(" -oti","")
			$hostname = $hostname.Replace(" -ot","")
	        $txtoutyn = "yi"
	    } elseif ($hostname -like "* -ot*"){
	        $hostname = $hostname.Replace(" -ot","")
	        $txtoutyn = "y"
	    }
		if ($hostname -like "* -drive*"){
	        $hostname = $hostname.Replace(" -drive","")
	        $drive = "y"
		} elseif ($hostname -like "* -d*"){
	        $hostname = $hostname.Replace(" -d","")
	        $drive = "y"
	    }
		if ($hostname -like "* -b*"){
	        $hostname = $hostname.Replace(" -b","")
	        $os = "y"
	    }
		if ($hostname -like "* -os*"){
	        $hostname = $hostname.Replace(" -os","")
	        $os = "y"
	    }
		if ($hostname -like "* -cpu*"){
	        $hostname = $hostname.Replace(" -cpu","")
	        $cpu = "y"
	    } elseif ($hostname -like "* -c*"){
	        $hostname = $hostname.Replace(" -c","")
	        $cpu = "y"
	    }
	}

#Ping Hostname, sending 2 Pings (-count)
	if(-not (Test-Connection -ComputerName $hostname -Quiet -Count 2))
	{
 	   	Write-Host "PC nicht erreichbar."&$wholesdar
	} else {
	    Write-Host "PC erreichbar"
	}
#Umschreiben auf andere Variable, damit bei einem weiteren durchgang die Parameter gleich bleiben.
	if ($cpu -eq "y" -or $os -eq "y" -or $drive -eq "y" ){
		$ccpu = "n"
		$cdrive = "n"
		$cos = "n"
		if($drive -eq "y"){
			$cdrive = "y"
		}
		if($os -eq "y"){
			$cos = "y"
		}
		if($cpu -eq "y"){
			$ccpu = "y"
		}
	}&$sort	#Geht alle wmi's durch und führt sie aus, wenn die jeweilige Variable y ist

    if ($txtoutyn -eq "y"){&$fancy
		$txtoutyn = "n"
    }

    if ($txtoutyn -eq "yi"){&$fancy
    }

#Wiederholen?
    Read-Host "$date bevor again" #Nur zur Spurensuche wo der Fehler liegt, welchen ich suche (Frage im Forum)
    $again = Read-Host "Erneut?"
    if ($again -eq "y"){&$wholesdar
    } else {
        if ($again -eq "j"){&$wholesdar
        } else {
            Write-Host "Tschauli"
        }
    }

}

&$wholesdar




So hoffentlich kann mir einer von euch da etwas helfen :D
Und Danke für lesen und Danke schon mal im voraus fürs helfen.

Wie gesagt wenn ich etwas vergessen hätte sagt es mir bitte.
geschrieben habe ich das ganze in der Powershell ISE und mittlerweile im PowerGUI Script Editor (von Dell wenn ich mich nicht  täusche)

hfh
teenusa

EDIT-1: Habe jetzt den Ping Test von Lars eingefügt und schon ein paar Kommentare hinzugefügt

EDIT-2: Noch mehr Kommentare | die ganzen Parameter sind dazu da um nur bestimmte Informationen zu bekommen, bzw. die Informationen auch in eine .txt zu verfrachten.

EDIT-3: Try Catch eingefügt (wo soll ich try catch überall haben?)

EDIT-4: elseif eingefügt bei Parameter abfrage (auch performanter gestaltet




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 ?

Powershell MQ greift auf Systemobjekte (SYSTEM.DEFAULT.MODEL.QUEUE) zu

$
0
0

Hallo,

ich habe ein Powershell Skript mit MQ Anbindung geschrieben. Wenn ich diese ausführe, dann bekomme ich folgende Fehlermeldung:

Entity 'mqcfg       ' has insufficient authority to access object

'SYSTEM.DEFAULT.MODEL.QUEUE'.

Ich vermute, dass ich noch eine Einstellung machen muss, weiß leider nicht welche. Wäre Euch echt dankbar, wenn ihr mir helfen könntet.

Mein Skript sieht folgendermassen aus:

$qmc= @()

$qmc+=New-WMQQmgrConnDef-name$MQ_ManagerName-Port$MQ_Port-Hostname$MQ_HostName-Channel$MQ_Channel

$WMQM=Get-WMQQueueManager-Connections@qmc

$message=New-WMQMessage

$message.CharacterSet=819

$txt="TEST"

$message.Writestring($txt)

Send-WMQMessage $message (Get-WMQQueue -Name $MQ_QName -Qmgr $WMQM)

Vielen Dank und viele Grüße

Spalten Sortieren per Powershell

$
0
0

brauche eine kurze Hilfe und komme gerade nicht weiter hoffe das ihr mir helfen könnt.

würde sehr gerne Spalte D sortieren das die kleinste Zahl oben steht und die größte zahl unten.

Vorher

Nachher

danke für die Hilfe und Zeit

How to create a PS Code Signing certificate signed by the SBS Root certificate

$
0
0

Hello,

we need a Code sigbning certificate to sign PS Scripts.

In the internet i found solutions to create such certificate as self-signed certificate (signed by a self created CA) or how to buy such a thing.

What i would like to do is to create a code-signing certificate signed by the SBS-Root-certificate. In this way i would not need to deploy another root certificate in the domain because the SBS-root-certificate is already deployed by default.

Can somebody pls. tell me how to do this?

Environment:

SBS 2011 R2 Standard, some Server 2012 R2 machines with a lot of Win7 and W10 client machines. Of course all in a AD-Domain.

Thank you for your help.

Gruß

Martin


Default Programm ändern

$
0
0

Hallo!

Gibt es eine Möglichkeit mit PS nur bestimmte Endungen Programmen zuzuweisen?
OHNE dass ich die Default Programme von einem anderen PC "spiegeln" muss.

Danke schon mal für eure Bemühungen :D

Felix


Erstellen und ausfuehren eines Befehls in Powershell

$
0
0

Guten Tag,

Ich habe ein Problem das ich alleine nicht gelöst bekomme, und leider hat mich google diesemal auch enttäuscht.

Ich arbeite gerade an diversen Mod's für das Spiel No Man's Sky. Um Mods für dieses Spiel zu produzieren, muss man diverse Playstation files Compilieren (PSARC)/(*.PAK)
Dies geschieht über diverse Kommandozeilen Programme.

die meisten Programme kann ich einfach über Batch Dateien steuern da die Kommandos immer gleich sind. 
Für ein Programm muss ich aber in dem Kommando ein Filename eintragen.
Da bisher fast nix über die Architektur diese Spiel bekannt ist habe ich hier viel Reverse Engineering zu betreiben. Das heisst ich muss tausende Dateien decompilieren und dafür brauche ich ein automatisierten Befehl

Ich möchte nun ein Powershell Script erstellen, dass mir den Befehl automatisch anpasst jenachdem was für ein File neben dem script im gleichen Ordner liegt.

z.B:

MBINCompiler.exe C:\temp\GCSPACESHIPGLOBALS.GLOBAL.MBIN
pause

Dieser Befehl benötige ich um aus einer *.MBIN Datei eine lesbare XML datei zu erstellen. es enpackt das File GCSPACESHIPGLOBALS.GLOBAL.MBIN
Dieses File liegt neben der MBINCompiler.exe im gleichen Ordner. 

Wie müsste ein Powershell Script aussehen das mir diesen Befehl automatisch anpasst für das Aktuelle *.MBIN file?
es müsste diesen befehl genereiern und ausführen:

MBINCompiler.exe C:\temp\[FILENAME DER NEBEN DER EXE IM ORDENR LIEGT UND IMMER EINE MBIN DATEI IST]
pause

Ich hoffe ihr könnt mir dabei Helfen

Vielen Dank
Marco



Aufzeichnen der Shell Ausgabe mit Transcript

$
0
0

Hallo,

Ich würde gerne die Shell Ausgabe eines Kommandozeilen Programm in ein Textfile schreiben.
das Kommandozeilen Programm gibt mir folgende Zeilen aus die ich anschliessend benötige um eine Datei neu zu packen.
eine Zeile sieht z.B so aus:


Extracting: METADATA/REALITY/TABLES/test.txt (96452 bytes)

Je nach Packgrösse können das hunderte Hierarchie Pfade sein, und genau diese brauche ich in einem separaten File.

mein kläglicher Versuch:

$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
Start-Transcript -path C:\temp\output.txt -append
$Files = Get-Childitem "C:\temp\psarc\*.pak"
foreach($File in $Files)
{
   ./psarc.exe extract -y  $file.Fullname
}
Stop-Transcript
Das Programm läuft auch sauber durch, nur erhalte ich in der output text folgendes:
**********************
Start der Windows PowerShell-Aufzeichnung
Startzeit:    20160826140205
Benutzername: blabla
Computer:	 blabla
**********************
Die Aufzeichnung wurde gestartet. Die Ausgabedatei ist "C:\temp\output.txt".
**********************
Ende der Windows PowerShell-Aufzeichnung
Endzeit: 20160826140205
**********************
Was sollte ich tun, damit ich die Ausgabe der psarc.exe in die Textdatei bekomme?

vielen dank im voraus

Marco


Gupta SQLBASE 8.5 Datenbank Connection mit Powershell

$
0
0

Hi@all,

ich habe jetzt seit Tagen gesucht und nichts gefunden.

Ich müsste ein Wert in einer GUPTA Datenbank per Powershell setzen und suche gerade ein ConnectionString um mich mit Powershell mit einer GUPTA Datenbank zu verbinden.

Vielleicht kann mir hier ja jemand helfen.


Gruß und Danke

Mit Powershell in neu angelegtes Home Verzeichnis ($SAM) kopieren

$
0
0

Hallo zusammen,

wir legen autoamtisiert einen User in der AD an, direkt nach Ausführung wird ein Script ausgeführt $SAM holt sich Name, Vorname dirtekt aus dem Formular. Nun möchte ich am Ende noch, eine Datei in das neue USer Home Verzeichnis kopieren, also Ordner 'Vorlagen' und darin eine DOC Datei. Mein Problem, wie teile ich ihm mit, in welches Verzeichnis? Gebe ich SAM an, erstellt er mir ein neues Verzeichnis (btw: bis zum copy-item Prozess läuft alles einwandfrei durch)..

# Argumente übergeben[string] $SAM = $args[0]# Argumente ausgeben zu Protokoll-Zwecken
write-host "Argumente:" $SAM# Pfad erstellenNew-Item-ItemTypeDirectory-Path"\\meinserver\User$\$SAM"# ACL vom neuen Pfad auslesen
$Acl =Get-Acl"\\meinserver\User$\$SAM"# Neue Berechtigung für den Erstellten User als Objekt erstellen (FullControl, Vererbung komplett aktiv)
$Ar =New-Object  system.security.accesscontrol.filesystemaccessrule("$SAM","FullControl","ContainerInherit,ObjectInherit","None","Allow")# Setzt die neue ACL
$Acl.SetAccessRule($Ar)Set-Acl"\\meinserver\User$\$SAM" $Acl# Entfernt die Berechtigung für die Server-lokale Benutzer-GruppeGet-ChildItem-Path"\\meinserver\User$\$SAM"-Recurse|Get-NTFSAccess-Account meinserver\Benutzer -ExcludeInherited|Remove-NTFSAccess# SOLL WERDEN: Kopiert Briefvorlage in das User Verzeichnis
copy-item -path c:\Scripts\Vorlagen\Vorlagen_NEU\* -destination "\\meinserver\User$\$SAM"

Danke,

H. Nord

 

Powershell: New-ADUser : Die Syntax des Objektnamens ist ungültig

$
0
0

Hallo,

ich habe seit Gestern angefangen mich etwas mit Powershell zu beschäftigen und möchte ein Skript bauen, das User in der AD anlegt. Nun bin ich seit einigen Stunden dabei diesen Fehler zu lösen.

New-ADUser : Die Syntax des Objektnamens ist ungültig
In C:\Users\Administrator\Desktop\Powershell\2. Form darstellen\Form.ps1:110 Zeichen:13
+             New-ADUser -Name $objTextBox3 -GivenName $objTextBox1 -Su ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (CN=System.Windo... Items.Count: 3:String) [New-ADUser], ADException
    + FullyQualifiedErrorId : ActiveDirectoryServer:8335,Microsoft.ActiveDirectory.Management.Commands.NewADUser

Bin aber bisher leider am Ende und weiß nicht mehr was ich versuchen kann. Vielleicht kann mir einer von euch bei dem Problem helfen.

Danke schon einmal in voraus!

# Alle im Forest gefundenen Domänen abrufen
$AvailableDomains=(get-adforest).domains
# Wenn keine Domäne gefunden wird abbrechen
if ($AvailableDomains.count -lt 1) {throw "Keine Domäne zur Verwaltung gefunden"}
else {


#OU's werden abgerufen

$AvailableOU = Get-ADObject -Filter {ObjectClass -eq 'organizationalunit'}


#Die ersten beiden Zeilen oeffnen die Form

[void] [System.Reflection.Assembly]::LoadWi
[void] [System.Reflection.Assembly]::LoadWi


#Die nächste Zeile erstellt aus der Formsbibliothek das Fensterobje.

$objForm = New-Object System.Windows.Forms.Form


#Die Titelzeile wird beschriftet

$objForm.Text = "AD PowerManagmant"


#Die groesse des Fensters wird bestimmt. 250x600 Pixel

$objForm.Size = New-Object System.Drawing.Size(250,350)


#Position des Fensters wird mittig angegeben

$objForm.StartPosition = "CenterScreen"

#Ein Lable wird dem Fenster hinzugefügt

$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,20)
$objLabel.Size = New-Object System.Drawing.Size(100,20)
$objLabel.Text = "Domain"
$objLabel.Name = "Domain"
$objForm.Controls.Add($objLabel)


#Ein Lable2 wird dem Fenster hinzugefügt

$objLabel2 = New-Object System.Windows.Forms.Label
$objLabel2.Location = New-Object System.Drawing.Size(10,60)
$objLabel2.Size = New-Object System.Drawing.Size(100,20)
$objLabel2.Text = "OU"
$objLabel2.Name = "OU"
$objForm.Controls.Add($objLabel2)


#Ein Lable3 wird dem Fenster hinzugefügt

$objLabel3 = New-Object System.Windows.Forms.Label
$objLabel3.Location = New-Object System.Drawing.Size(10,100)
$objLabel3.Size = New-Object System.Drawing.Size(100,20)
$objLabel3.Text = "Vorname"
$objLabel3.Name = "Vorname"
$objForm.Controls.Add($objLabel3)


#Ein Lable4 wird dem Fenster hinzugefügt

$objLabel4 = New-Object System.Windows.Forms.Label
$objLabel4.Location = New-Object System.Drawing.Size(10,140)
$objLabel4.Size = New-Object System.Drawing.Size(100,20)
$objLabel4.Text = "Nachname"
$objLabel4.Name = "Nachname"
$objForm.Controls.Add($objLabel4)


#Ein Lable5 wird dem Fenster hinzugefügt

$objLabel5 = New-Object System.Windows.Forms.Label
$objLabel5.Location = New-Object System.Drawing.Size(10,180)
$objLabel5.Size = New-Object System.Drawing.Size(100,20)
$objLabel5.Text = "Anzeigename"
$objLabel5.Name = "Anzeigename"
$objForm.Controls.Add($objLabel5)


#Ein Lable6 wird dem Fenster hinzugefügt

$objLabel6 = New-Object System.Windows.Forms.Label
$objLabel6.Location = New-Object System.Drawing.Size(10,220)
$objLabel6.Size = New-Object System.Drawing.Size(100,20)
$objLabel6.Text = "Passwort"
$objLabel6.Name = "Passwort"
$objForm.Controls.Add($objLabel6)



#Der Benutzer wird der AD hinzugefügt

$user = {

            $password = $objTextBox4 | ConvertTo-SecureString -AsPlainText -Force
            New-ADUser -Name $objTextBox3 -GivenName $objTextBox1 -Surname $objTextBox2 -Path $objCombobox2 -AccountPassword $password -ChangePasswordAtLogon $True -Enabled $True


        }


#Ein Button wird hinzugefügt "OK"

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(10,260)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "OK"
$OKButton.Name = "OK"
$OKButton.Add_Click($user)
$objForm.Controls.Add($OKButton)


#Eine Combobox1 wird dem Fenster hinzugefügt

$objCombobox = New-Object System.Windows.Forms.ComboBox
$objCombobox.Location = New-Object System.Drawing.Size(120,20)
$objCombobox.Size = New-Object System.Drawing.Size(100,20)#
$AvailableDomains | foreach {[void] $objCombobox.Items.Add("$_")}
$objForm.Controls.Add($objCombobox)


#Eine Combobox2 wird dem Fenster hinzugefügt

$objCombobox2 = New-Object System.Windows.Forms.ComboBox
$objCombobox2.Location = New-Object System.Drawing.Size(120,60)
$objCombobox2.Size = New-Object System.Drawing.Size(100,20)
$AvailableOU | foreach {[void] $objCombobox2.Items.Add("$_")}
$objForm.Controls.Add($objCombobox2)


#Ein Textfeld1 wird dem Fenster hinzugefügt

$objTextBox = New-Object System.Windows.Forms.TextBox
$objTextBox.Location = New-Object System.Drawing.Size(120,100)
$objTextBox.Size = New-Object System.Drawing.Size(100,20)
$objForm.Controls.Add($objTextBox)


#Ein Textfeld2 wird dem Fenster hinzugefügt

$objTextBox2 = New-Object System.Windows.Forms.TextBox
$objTextBox2.Location = New-Object System.Drawing.Size(120,140)
$objTextBox2.Size = New-Object System.Drawing.Size(100,20)
$objForm.Controls.Add($objTextBox2)


#Ein Textfeld3 wird dem Fenster hinzugefügt

$objTextBox3 = New-Object System.Windows.Forms.TextBox
$objTextBox3.Location = New-Object System.Drawing.Size(120,180)
$objTextBox3.Size = New-Object System.Drawing.Size(100,20)
$objForm.Controls.Add($objTextBox3)


#Ein Textfeld4 wird dem Fenster hinzugefügt

$objTextBox4 = New-Object System.Windows.Forms.TextBox
$objTextBox4.Location = New-Object System.Drawing.Size(120,220)
$objTextBox4.Size = New-Object System.Drawing.Size(100,20)
$objForm.Controls.Add($objTextBox4)

#Durch die nächste Zeile wird das Fenster dargestellt

[void] $objForm.ShowDialog()

}

Viewing all 2314 articles
Browse latest View live


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