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

Computer-Startscript im Hintergrund ausführen

$
0
0

Hallo zusammen,

ich verwende bei div. Servern ein Computer-Startscript. Das Script wird über Gruppenrichtlinien aufgerufen. (Computerkonfiguration/Windows-Einstellungen/Skripts/Starten)
Aktuell ist ein Batch-Skript in Verwendung, welches in etwa 10 Minuten läuft.

Das Verhalten ist folgendermaßen:
Der Server startet > Man sieht das Boot-Logo > Die Windows UI erscheint > Gruppenrichtlinien und Einstellungen werden angewendet > Anmeldemaske erscheint

Nach Anmeldung startet der Windows Desktop und das Batch-Script läuft im Hintergrund weiter bis es fertig ist.

-----

Ich habe das Batch-Script jetzt neu in Powershell geschrieben. Das neue Powershell Script wird auch über Gruppenrichtlinien aufgerufen. (auf die gleiche Weise wie das ehem. Batch-Script...)

Das Verhalten ist folgendermaßen:
Der Server startet > Man sieht das Boot-Logo > Die Windows UI erscheint > Gruppenrichtlinien und Einstellungen werden angewendet > Das Script wird verarbeitet - dauert 10 Minuten bis es fertig ist > Anmeldemaske erscheint

Wie kann ich erreichen, dass das Powershell-Script im Hintergrund ausgeführt wird und der Server zwischenzeitlich schon verwendet werden kann. (selbes Verhalten wie mit dem Batch-Script)

Gibt es eine passendes Policy-Setting?

Vielen Dank!



DateTime treibt mich in den Wahnsinn...

$
0
0

Hallo!

Ich schreibe mir gerade ein Script, welches Fotos in Ordner sortiert, und möchte dazu das Aufnahmedatum verwenden.

Das Datum lese ich als String aus, z.B. "2/‎18/‎2010 ‏‎3:36 AM", ich bekomme es aber einfach nicht hin, daraus ein

DateTime zu machen.

Ein kleines Experiment hat mich nun völlig aus der Bahn geworfen : man lasse folgendes Script laufen und erkläre mir,

warum nur die letzten beiden DateTime-Aufrufe funktionieren.....

$a = "2/‎18/‎2010 ‏‎3:36 AM"
$b = "2/‎18/‎2010 ‏‎3:36"
$c = "2/‎18/‎2010"
[DateTime]$a
[DateTime]$b
[DateTime]$c
[DateTime]::ParseExact($c,"M/dd/yyyy",$null)
[DateTime]::ParseExact("2/18/2010","M/dd/yyyy",$null)
[DateTime]"2/18/2010"

Windows 10, Apps entfernen

$
0
0

wenn wir mehrere Apps auf einmal entfernen möchten bleiben immer ein paar erhalten

selben Problem wenn man es über Get-AppxPackage *OneNote* | Remove-AppxPackage entfernt.

Remove-AppxPackage -Package Microsoft.BingFinance_4.4.200.0_x86__8wekyb3d8bbw
Remove-AppxPackage -Package Microsoft.XboxApp_8.8.15003.0_x64__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.WindowsStore_2015.8.25.0_x64__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.3DBuilder_10.1.9.0_x64__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.WindowsCamera_5.54.3001.0_x64__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.ZuneMusic_3.6.12711.0_x64__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.WindowsPhone_10.1508.17010.0_x64__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.MicrosoftSolitaireCollection_3.3.8040.0_x64__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.BingSports_4.5.168.0_x86__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.Office.OneNote_17.6131.10021.0_x64__8wekyb3d8bbwe
Remove-AppxPackage -Package Microsoft.SkypeApp_3.2.1.0_x86__kzf8qxf38zg5c


Chris

PowerShell Module "DnsClient" & "NetTCPIP" in Windows 7 verwenden?

$
0
0

Hallo zusammen!

Unter Windows 8.1 bzw. Windows 10 habe ich ein Script mit den oben genannten Modulen erstellt.

Nun benötige ich das Script auch unter Windows 7 wo es diese Module nicht gibt.

Ich habe nun schon versucht das .Net mit Version 4.5.2 bzw. PowerShell 4.0 nach zu installieren. (Leider ohne Erfolg!)

Hat jemand einen Tip wie man Module nach installieren kann?!

Danke vorab!

Lg Jochen

UNC-Pfade in der Powershell

$
0
0

Es gelingt mir einfach nicht ein Laufwerk auf einem anderen Server über den UNC-Pfad zu benutzen. Ich erhalte dann die Meldung über einen üngültigen Pfad.

Der Zugriff über "\\servernamen\laufwerksbuchstabe$\dir" geht also nicht.

Der Umweg sich ein Netzlaufwerk zu verbinden über "New-PSDrive" ist für mich nicht praktikabel, da mein Skript auf unterschiedlichen Servern laufen soll.

Meine Frage lautet daher:

Ist es möglich in der Powershell UNC-Pfade direkt zu verwenden ? Und wenn ja : WIE ??

Vielen Dank im Voraus und herzliche Grüße

Bernd

Multi Eventlog Abfrage in GriedView (verketten von Variablen)

$
0
0

Geschätzte Admins

Ich habe mir ein Scipt gebastelt das für den einen oder anderen vielleicht auch interessant ist. Leider funktioniert es im griedview nicht richtig. Ich vermute auch wo der Fehler liegt aber habe keine Lösung gefunden. Ich enke für ein gutes Powershell Auge kein Problem ;-)

Ich schreibe alle Server welche ich abfragen will in die Variable $Servers.

foreach ($Server in $Servers)
{
$events = Get-EventLog -ComputerName $Server -logname Application -newest 10 -EntryType warning,error |select *
$multievents+= $events
}
$multievnts|Out-GridView

danke für Eure Zeit & Gruss

Florian

Import-PSSession : Dateien können nicht ausgeführt werden, weil das Ausführen von Skripts auf diesem System deaktiviert ist

$
0
0

Hallo,

ích verwende eine Identity and Access Management System zum anlegen von Benutzern welches wir aktuell auf einen neuen Server umziehen, um ein Postfach am Exchange (Server 2008R2 Exchange 2010) anzulegen verwende ich eine Batch-Datei die ein Powershellscript ausführt. Allerdings bekomme ich beim Ausführen des Scripts auf dem neuen Server (Server 2012) die Meldung:

Import-PSSession : Dateien können nicht ausgeführt werden, weil das Ausführen von Skripts auf diesem System deaktiviert ist

Auf dem Exchangeserver habe ich Set-ExecutionPolicy -ExecutionPolicy Bypass und RemoteSigned bereits ausprobiert.

Führe ich das Script über den alten Server (Server 2003) aus funktioniert es einwandfrei. Hat jemand eine Idee woran es noch liegen könnte?

Grüße

Johannes


"Add-Computer" wenn Computerobjekt zuvor manuell angelegt wurde!?

$
0
0

Hallo!

Ich verwende den Befehl "Add-Computer" in einem Skript um Computer mit unserer Domäne zu verbinden.

Grundsätzlich funktioniert auch alles wunderbar! Außer wenn bereits ein Computerobjekt (gewollt) besteht.
In diesem Fall wird das Skript mit der Fehlermeldung: "Das Konto existiert bereits." beendet.

Interssant ist jedoch das bei einem manuell Beitritt über "System" mit dem selben Benutzer keine Meldung kommt.
Weiters habe ich ein virtuelles Testsystem aufgebaut wo ich diesen Fehler mit dem Script nicht erhalte!

Gibt es eine Möglichkeit das Verknüpfen mit einem bestehenden Computerobjekt zu erzwingen?

Leider habe ich die Vorgabe bestehende Objekte zu verwenden da es sich um Seminar-Computer handelt.

Danke für eure Tips!

Lg Jochen


Erweiterte Freigabe über PowerShell

$
0
0

Hallo,

ich erstelle über PowerShell einen Ordner und weise einem Benutzer alle Rechte zu. Nun möchte diesen Ordner auch Freigaben, so dass er über smb für den Benutzer zu erreichen ist. Leider bekomme ich das nicht hin.

Das habe ich bisher und kappt auch ganz gut, allerdings fehlt mir nun die Freigabe.

ForEach ($user in $users)
{
    #get cn from user
    $cn = $user.cn
    Write-Host "BEGIN CREATE FOLDER"
    Write-Host "cn:" $cn

    $folderPath = "q:\\inetpub\wwwroot\$cn"

    $newFolder = New-Item -Path $folderPath -ItemType "directory"

    $right = "FullControl"
    $intraUser = "domain\$cn"
    $rule = New-Object system.security.accesscontrol.filesystemaccessrule($intraUser,$right, 3,0, "Allow")
    $acl = Get-Acl $folderPath
    $acl.SetAccessRule($rule)
    Set-Acl $folderPath $acl

    Write-Host "END CREATE FOLDER"
    Write-Host ""
}

Trigger a public method in a public partial class with powershell

$
0
0

Hi together

Maybe someone can help me with this issue. I want to trigger a public method in a public partial class.
I only found solutions for static methods right now and I am not able to do this by my own. I hope someone can help me.

This is the class and method. I want to trigger the "public void RefreshTree(SPSite site)" method with powershell.

Namespace: MyCustomer.Base.Layouts.Base

public partial class TreeMaintenance : LayoutsPageBase
{

     public void RefreshTree(SPSite site)
     {
         ....
     }

}

Thank you for your advise!

Greetings Michael

Countdown-Shellscript

$
0
0

Hallo,

Mir stellt sich folgendes Problem:

Programmieren mit Powershell ist relativ neu für mich(habe in der Vergangenheit erst kleinere Scripte damit geschrieben)

Auf meiner Informationen Suche ist mir dieser Beitrag untergekommen:

https://social.technet.microsoft.com/Forums/de-DE/ee4307cd-c179-4376-a2f3-dd7e6de9faa0/mit-powershell-countdown-erstellen?forum=powershell_de

Leider konnte ich die dort genannten Informationen nicht vernünftig verarbeiten.

Ich möchte ein kleines Powershellscript schreiben welches :

1.) Gestartet wird wenn ich ein bestimmtest Programm startet(bzw. damit verknüpft ist)

2.)Beim Tastendruck "f" soll es starten

3.)Ein Timer sollte vom Tastendruck an von 43 Sekunden an herunterlaufen und bei 0 eine Mp3 Datei abspielen

Optional:

Es wäre noch sehr schön wenn man den Countdown(nur die Sekunden) noch darstellen könnte

Hierbei wäre mir sowohl wichtig, die Schriftart, als auch die Größe/Farbe verändern zu können.Des Weiteren wäre mir wichtig, dass dies in einem transparentem Fenster oder ähnlichem passiert.Ein weiterer Punkt, welcher mir wichtig wäre ist die Position des Timers auf dem Bildschirm.(Ich weiß nicht ob die Information wichtig ist aber der Timer soll als eine art Overlay über ein im Borderless-Modus laufendes Programm fungieren)

Ich habe keine Idee wie viel Aufwand ein solches "Projekt" darstellt, hoffe jedoch trotzdem, dass ihr mir Hilfestellung geben könnt.

Mit freundlichen Grüßen,

Sebastian Lenz


AD Share NTFS Berechtigungen ausgeben lassen

$
0
0

Hallo zusammen, ich habe eine Frage bzgl. Share Berechtigungen auslesen und in CSV Datei speichern.

Folgendes Skript ist aktuell im Einsatz:

$folders = gci \\def-svr2\e$ | ?{$_.PSIsContainer}
foreach ($folder in $folders) {
            $accessrules = @()

            $acl = Get-Acl $folder.FullName
            $acl.GetAccessRules($true,$IncludeInheritedRights,[System.Security.Principal.NTAccount]) | %{
            $accessrules += New-Object PSObject -Property @{"Folder" = $folder.FullName"Rights" = $_.FileSystemRights"Account" = $_.IdentityReference"Member" = (Get-ADGroupmember $_.IdentityReference.toString().split('\')[1]  | select-expandproperty Name) -join ", "
			 }


return $accessrules  | sort Folder,Account | select Folder, Rights, Account, Member  | export-csv "C:\$folder.csv" -NoType -Delimiter ";" -Encoding UTF8

}
%{$accessrules = $null}
}


Auf Share1 hat zB. die Gruppe "Muster" mit dem Mitgliedern Max und Maria Mustermann write Berechtigungen. Ich frage den Share ab, erhalte die Gruppe und dadurch dann die Gruppenmitglieder (aktuell in einer Spalte, durch Komma getrennt. 

Folder Rights Group Member
Share1 write Muster MusterMax, MusterMar


Nun soll das Ganze allerdings erweitert bzw. modifiziert werden.

Es ist eine CSV Datei für jeden Share gedacht mit folgendem Aufbau:

Folder Rights Member DisplayName Department
Share1 write MusterMax Mustermann, Max 111000
Share1 write MusterMar Mustermann, Maria 111001



Meine Frage:
Ist ein solcher Aufbau überhaupt möglich? Ich erhalte die Member ja nicht direkt und einzeln, sondern durch eine Get-ADGroupmember Abfrage der jeweiligen Gruppe, die Berechtigungen auf dem Share besitzt.
dh. ist es machbar, dass man die Auflistung der Gruppenmitglieder nicht in einer Spalte, sondern in mehreren Zeilen erreichen kann? Wenn ja, dann ist es auch bestimmt möglich für die einzelnen Mitglieder die DisplayNames sowie deren Department anzeigen zu lassen.


Ich hoffe ihr versteht meine Frage und könnt mir diesbezüglich helfen.
Einen schönen Start in die Woche und viele Dank schon mal für die Hilfe

Viele Grüße

PowerShell und MySQL (für GUI)

$
0
0

Hallo liebes Technet,

ich habe schon ein wenig Erfahrung mit PowerShell sammeln dürfen und bin derzeit dabei mir ein kleines Tool mit dem "SAPIEN PowerShell Studio" zu erstellen (Ja, selbst machen wäre besser/schöner). Das "Tool" soll nicht viel machen müssen, ich möchte lediglich im X Minuten Takt eine Abfrage auf eine MySQL DB machen, welche schaut ob neue/generell Einträge vorhanden sind. Diese sollen dann anhand einer Zahl in einem Label angezeigt werden. Unter dem Label soll ein Button sein mit dem man per Knopfdruck eine View kommt, wo man die Datensätze im Detail einsehen kann. Ich habe jedoch leider nicht das Wissen um das ganze zu realisieren. Immer wenn ich eine While schleife erstelle mit einem Start-Sleep, hilft mir das recht wenig, weil die GUI durch die Schleife ja blockiert wird und ich dies nur noch schließen kann. Wie lasse ich den MySQL Query als Job oder was auch immer laufen, sodass er die Abfrage und Aktualisierung macht, jedoch die GUI frei zur Verwendung bleibt?

Ich erwarte auch keine konkrete Lösung und bin auch gern gewillt mich durch PowerShell Bücher/Seiten/etc. zu lesen um mir den Stoff anzueignen, jedoch weiß ich nicht mal wo ich denn suchen soll. Bisher konnte ich leider nicht finden und hoffe daher auf die Hilfe aus dem Technet.

PS: Macht es denn Sinn das ganze über PS abzufackeln oder sollte ich dann eher ein GUI Tool mittels C# schreiben?

Danke schon mal und Gruß

Zane

AD Share NTFS Berechtigungen ausgeben lassen - ERWEITERUNG

$
0
0

Hi zusammen,

Ich nochmal zu diesem Thema:

TEIL 1

Diesmal mit Erweiterung des Ganzen. Vielleicht könnt Ihr mir ja nochmal weiterhelfen.

Das Skript durchsucht ja wie bereits erwähnt diverse Shares nach "Berechtigungsgruppen"

Diese Gruppe beinhalten 2 Arten von Members:

- User:

Diese werden durch das Skript richtig ausgegeben, dabei werden der Displayname, das Department sowie die Berechtigungen der Berechtigungsgruppe auf dem Share angezeigt... alles gut soweit

- Abteilungsgruppen:

Hier sind Gruppen in der Berechtigungsgruppe. Auch diese werden durch die aktuelle Variante vom Skript ausgegeben, samt Members und Department ...

Allerdings werden in diesem Fall die Berechtigungen der Berechtigungsgruppe nicht angezeigt!!

$folders = gci \\def-svr1\e$ |?{$_.PSIsContainer}foreach($folder in $folders){
            $accessrules =@()

            $acl =Get-Acl $folder.FullName
            $acl.GetAccessRules($true,$IncludeInheritedRights,[System.Security.Principal.NTAccount])|%{try{
            $test =Get-ADGroup $_.IdentityReference.toString().split('\')[1] | select -expand Samaccountname
            $names = Get-ADGroupmember $_.IdentityReference.toString().split('\')[1]|select-expand Samaccountname}Catch{"System ist kein gültiger User"}foreach($name in $names){if($_.IdentityReference.toString().split('\')[1] -ne "Administrators"){
              if  ($_.IdentityReference.toString().split('\')[1]-ne "Administratoren"){if($_.IdentityReference.toString().split('\')[1] -ne "SYSTEM"){
                           try{

            $UserData =  Get-ADUser $name  -properties Displayname, Department  | select Displayname, Department

            $accessrules += New-Object PSObject -Property @{"Folder" = $folder.FullName"Berechtigungsgruppe" = $test #$_.IdentityReference"Abteilungsgruppe" = $NULL"Member" = $name"Displayname" = ($UserData.DisplayName)"Department" = ($UserData.Department)"Rights" = $_.FileSystemRights
                               } #Ende Object

                }
                Catch {
                try{
                $memb = Get-ADGroupmember $name | select -expand Samaccountname
              }Catch {"System ist kein gültiger User"}

            foreach($membr in $memb) {
              if ($_.IdentityReference -ne "Administrators"){
              if  ($_.IdentityReference -ne "Administratoren"){
              if ($_.IdentityReference -ne "SYSTEM"){


            $UserData =  Get-ADUser $membr -properties Displayname, Department  | select Displayname, Department

            $accessrules += New-Object PSObject -Property @{"Folder" = $folder.FullName"Berechtigungsgruppe" = $test"Abteilungsgruppe" = $name"Member" = $membr"Displayname" = ($UserData.DisplayName)"Department" = ($UserData.Department)"Rights" = $test.FileSystemRights
                               } #Ende Object


                }}}
                }

                }}}}
                 } #Ende Schleife $names

             return $accessrules   | sort Folder,Account | select Folder, Berechtigungsgruppe, Abteilungsgruppe, Member, Displayname, Department, Rights  | export-csv "C:\$folder.csv" -NoType -Delimiter ";" -Encoding UTF8

}
}

Jemand eine Idee was geändert werden muss, damit auch bei den Berechtigungsgruppen, die Abteilungsgruppen  als Member haben, die Rechte auf den jeweiligen Share ordnungsgemäß angezeigt werden??

Danke im Voraus

Michael

remote entzipen mittels DOT.NET Objekt scheitert: "Die am Ende des zentralen Verzeichnisses erwarteten Einträge entsprechen nicht der Anzahl der Einträge im zentralen Verzeichnis."

$
0
0

Hallo,

ich arbeite derzeit an einem Commandlet das auf einer Menge Servern Zip-Dateien entpacken soll. Das entpacken der Dateien erfolgt über eine Remote PS-Session um den Netzwerk-Trafic zu minimieren. Die entpackten Dateien können einige GByte groß werden.

Dazu wird die folgende Funktion :

function unzip($file, $destination)
{
    Add-Type -assembly "system.io.compression.filesystem"
    [io.compression.zipfile]::ExtractToDirectory($file, $destination)
}

wie folgt aufgerufen :

                $pss = New-PSSession -ComputerName $_.TerminalServer
                Invoke-Command -Session $pss -ScriptBlock ${function:unzip} -ArgumentList $ZipDatei,$ZipPfad
                Remove-PSSession -Session $pss

Dabei bekomme ich auf einigen Servern folgende Fehlermeldung:

Ausnahme beim Aufrufen von "ExtractToDirectory" mit 2 Argument(en):  "Die am Ende des
zentralen Verzeichnisses erwarteten Einträge entsprechen nicht der Anzahl der Einträge im
zentralen Verzeichnis."
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidDataException
    + PSComputerName        : Test-01

Auf einigen funktioniert das Commandlet aber ohne Macken.

ich habe mittlerweile gelernt das es eine Speicherbegrenzung bei Remote-Sessions gibt und diese entsprechend erweitert:

Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 4096
Set-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB 4096
Restart-Service winrm

Aber leider hat mir das bei meinem Problem nicht weiter geholfen. Falls jemand einen Schimmer hat wo hier das Problem liegt würde ich mich sehr über einen kurzen Kommentar freuen.

Vielen Dank im Voraus und viele Grüße
Bernd


TerminateADUser – Get-ADPrincipalGroupMembership – MemberOf und CSV Export

$
0
0
Hallo Zusammen,

ich möchte mittels einem PS Skript AD Benutzerkonten geregelt terminieren.
Hierzu habe eine PS-Skript Function erstellt, die mit einem Parameter -AccountToTerminate 'SamAccountName' gestartet werden soll.
Innerhalb des Skripts sollen zum AD-Object und seinen Funktionen  wichtige Informationen in "eine" CSV-Datei zum entsprechenden Job (Job-ID) ablegt werden.

Einzelne Attributen und Werten stellen kein Problem dar, jedoch stoße ich bei der Verarbeitung von String-Arrays oder Typ "System.Array" immer wieder auf Probleme, was auch an meinem Verständnis liegen mag. :-(

Ich möchte für den ausgewählten Benutzer, eine CSV-Tabelle erstellen, mit Spalten:
DisplayName, SamAccountName, SID, etc.

sowie z.B. eine Spalte für die aktuellen Gruppenmitgliedschaften
MemberOf, MemberOfSID

oder die benutzen ActiveSync Geräte:
MobileDevices, etc.

Folgender Code (nur Teile) nutze ich zum sammeln der Informationen und dem Export ($efile):

CODE:
# Auswahl SamAccountName
$AccountToTerminate      = 'mustermann.max'
# Auslesen AD-Attribute und Funktionen
$ADUser                  = Get-ADUser -Identity $AccountToTerminate -Property * | Sort-Object
$UserMemberOf            = Get-ADPrincipalGroupMembership -Identity $AccountToTerminate | Select-Object  SamAccountName, SID
IF ($ADUser.'msExchMailboxGuid' -eq $Null){
    [String]$UserMailboxEnabled    = "Disabled"
    [String]$UserEmailAddress      = "NotSet"
    }
ELSE {
    [String]$UserMailboxEnabled   = "Enabled"
    [String]$UserEmailAddress     = $ADUser.'mail'
    $UserMailbox                  = Get-Mailbox $AccountToTerminate
    $UserCASMailbox               = Get-CASMailbox $AccountToTerminate
    $UserMobileDevices            = Get-MobileDeviceStatistics -Mailbox $AccountToTerminate
    }
# Ergebnisse zusammenbauen
[Array]$Result           = @()
$Object                  = New-Object PSObject
    Add-Member -InputObject $Object -memberType NoteProperty -Name DisplayName        -Value $ADUser.'DisplayName'
    Add-Member -InputObject $Object -memberType NoteProperty -Name SamAccountName     -Value $ADUser.'SamAccountName'
    Add-Member -InputObject $Object -memberType NoteProperty -Name SID                -Value $ADUser.'objectSID'.Value
    Add-Member -InputObject $Object -memberType NoteProperty -Name MailboxEnabled     -Value $UserMailboxEnabled
    Add-Member -InputObject $Object -memberType NoteProperty -Name EmailAddress       -Value $UserEmailAddress
    #
	Add-Member -InputObject $Object -memberType NoteProperty -Name MemberOf           -Value $UserMemberOf.SamAccountName
    Add-Member -InputObject $Object -memberType NoteProperty -Name MemberOfSID        -Value $UserMemberOf.SID.Value
$Result += $Object
# Ergebnisse in eine CSV Datei exportieren und diese öffnen
$Result                  | Export-Csv -Path $efile -Delimiter ";" -Encoding UTF8 -NoTypeInformation -ErrorAction $ErrorActionPreference& $efile
Nun die Frage!

1. Wie bekommt man es hin, die Mehrfach Werte (wie zum Beispiel 'MemberOf' oder 'MemberOfSID' in NUR eine "Spalte 'MemberOfSID'" in das $Result Array zu bringen und auch zu exportieren? 

Also zum Benutzer und seine Werte NUR eine Spalte "MemberOf" und darunter alle Gruppenmitgliedschaften?

Jeder Ansatz von mir, mit Schleifen oder 'System.Collections.ArrayList' führten zu keinem Ergbenis.
Der direkte CSV-Export der Variable '$UserMemberOf' in eine weitere Datei stellt kein Problem dar!?
Möchte jedoch zum Vorgang (Job-ID) nur eine Datei erstellen...

Vielen Dank im Voraus für jede Art der Zusammenarbeit.

Manfred Schüler

Start-AzureWebsiteJob (mit Parameter)

$
0
0

Hi,

ist es möglich, einen Azure-Websitejob mit Parametern aufzurufen? Der Webjob ist eine C# -exe, welche einen Parameter erwartet.

Hier das Original:

Start-AzureWebsiteJob -Name myWebSite -JobName myWebJob -JobType Triggered

Hier das Erwünschte:

Start-AzureWebsiteJob -Name myWebSite  -JobName myWebJob <Parameter1> -JobType Triggered

Merci

LG Nicole

Namen der Funktionen eine Skriptdatei auflisten...

$
0
0

Hallo!

ich habe eine gewisse Anzahl von Themenbezogenen Skripten, welche ich vor der Benutzung in der ISE mit einer Befehlszeile:

. D:\Skriptverzeichnis\Skriptname.ps1

initialisiere. Dadurch stehen mir die Funktionen innerhalb diese Skriptes nun auch per Intellisense zur Verfügung. Allerdings wird diese vorgehensweise mit steigender Zahl der eigenen Funktionen langsam unübersichtlich. Und dazu nun meine Frage.

Wie erreiche ich, dass mir (wenigstens) die Namen der enthaltenen Funktionen bei der Initialisierung angezeigt werden?

Gruß

Michael L.

Windows server 2012 R2 DC - lastlogondate leer

$
0
0

Hallo,

ich reporte zum Monatsende, wieviel Benutzer sich im laufenden Monat angemeldet haben.

Dazu diente bisher prima: get-aduser -filter * -properties * | sort-object lastlogondate | ft name, lastlogondate.

Das ist seit einigen Tagen komischerweise bei fast allen Benutzern leer!

lastlogondate ist ja die Konvertierung von lastlogontimestamp.

Das Feld ist ebenfalls fast überall leer. Warum auf einmal?

Das Ganze ist eine Domäne mit EINEM DC unter W2012 R2...

Ideen?


Greetings/Grüße Gernot

Ordnerberechtigungen mit Powershell vererben

$
0
0

Hallo,

ich habe folgenden Fehlerfall:

Bei uns im Unternehmen werden die Rechte auf Verzeichnisse über AD-Gruppen geregelt: eine Gruppe für schreibenden Zugriff und eine für lesenden Zugriff. Ab dieser Datenordnerebene ist alles darunter rekursiv vererbt.

Nun kommt es vor, dass die Anwender Dateien und Ordner von Datenordner1 nach Datenordner2 verschieben. Dabei wanderen natürlich die Rechte vom alten Ordner mit. Um diesen Fehler zu beheben muss ich also im Datenordner den Haken setzen bei "Alle Berechtigungseinträge für untergeordneteObjekte durch vererbbare Berechtigungseinträge von diesem Objekt ersetzen".

Ich habe noch nicht herausgefunden wie ich das mit Powershell abbilden kann.

Wie gesagt möchte ich einfach die gesetzten Rechte eines Ordners auf alle Unterordner und Dateien durchvererben und alle bestehenden Berechtigungen ersetzen, somit korrigieren. Und das über mehrere Datenordner aus einer Tabelle.

Habt ihr ne Idee wie ich das machen kann? Ich habe im Internet leider noch nichts gefunden was diesem Haken setzen bei "Alle Berechtigungseinträge für untergeordneteObjekte durch vererbbare Berechtigungseinträge von diesem Objekt ersetzen" entspricht.

Danke schonmal



Viewing all 2314 articles
Browse latest View live


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