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

Remote Powershell auf lokalen Rechner geht nicht (auf andere Remotesystem geht es) - enter-pssession

$
0
0

Hallo zusammen,

ich komme nicht weiter. Ich habe Probleme mit dem WINRM-Dienst.

Der Titel ist auch komisch gewählt und ich umschreibe es mal mit Beispielen.

OS: Windows Server 2012 R2 - alle in einer Domäne

Folgende Server stehen dort drinnen: SERVER1, SERVER2, SERVER3

Beispiel:

1) Ich bin auf dem Rechner mit dem Namen SERVER1

Folgende Befehler gehen:

- enter-pssession localhost
- enter-pssession SERVER2

- enter-pssession SERVER3

Und auf sich selber (mit DNS oder FQDN) schlägt fehl:
- enter-pssession SERVER1

Enter-PSSession : Beim Verbinden mit dem Remoteserver "SERVER1" ist folgender Fehler aufgetreten: Der
WinRM-Client hat eine Anforderung an den Remote-WS-Verwaltungsdienst gesendet und eine Antwort erhalten, in der
gemeldet wurde, dass die angeforderte HTTP-URL nicht verfügbar ist. Diese Meldung wird normalerweise von einem
HTTP-Server zurückgegeben, der das WS-Verwaltungsprotokoll nicht unterstützt. Weitere Informationen finden Sie im
Hilfethema "about_Remote_Troubleshooting".
In Zeile:1 Zeichen:1
+ Enter-PSSession SERVER1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (SERVER1:String) [Enter-PSSession], PSRemotingTransportExceptio
   n
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

2) Bin ich auf SERVER 2 passiert folgendes:

Folgende Befehler gehen:

- enter-pssession localhost
- enter-pssession SERVER1
- enter-pssession SERVER3

Und auf sich selber (mit DNS oder FQDN) schlägt fehl:

- enter-pssession SERVER2

Hat jemand eine Idee?

Danke.

Gruß
Daniel



Computername und Domäne beitreten

$
0
0

Hallo,

ich möchte via Powershell-Skript den Computernamen ändern und der Domäne beitreten. Das mache ich zur Zeit so:

#Computername:    
$NewCompName = "ADSrv1"
    $Computerinfo = Get-WmiObject -class win32_computersystem
    $Computerinfo.rename($NewCompName)

#Domäne:    
$Domainname = "meinedomaene.at"
 Add-Computer -DomainName $Domainname -Credential meinedomaene\Administrator -Restart

Das Problem ist, dass nach dem Neustart der Computername nicht geändert wurde.

Hab ich irgendwas falsch gemacht???

lg, Ingemar

Get-ADPrincipalGroupMembership

$
0
0

Hallo zusammen,

In unserem Betrieb schreiben wir unser Login Script von VBS auf Powershell um. Wir sind fliessig dran, aber haben ein Problem. Sobald ich das Script auf einen Client PC starte, erscheint diese Fehlermeldung: Der User hat keine lokalen Admin Rechte und ist Mitglied der Domänen-User.


Was kann ich dagegen tun um das Problem zu lösen? Danke, Angelos

Powershell Remoting

$
0
0

Hallo Zusammen,

ich habe eine Verständnisfrage zum PSRemoting.
Ich komme aus dem Linux-Umfeld, wo ich mich mit ssh auf einer entfernten Maschine anmelde, das Programm "Screen" starte
und dort meine Programme (mutt, etc) in mehreren screens aufrufe.
Trenne ich die Verbindung zur entfernten Maschine und verbinde mich später wieder, finde ich meine Session so vor,
wie ich sie verlassen habe.
Gibt es mit Powershell ebenfalls die Möglichkeit, dass die Sitzung auf der Gegenseite nach dem Trennen der Verbindung erhalten bleibt und beim erneuten Verbinden wieder zur Verfügung steht?

Gruss

Thomas

Scheduled Tasks mit Mail Action mit PowerShell konfigurieren

$
0
0

Hallo zusammen,

unter Windows 2012 gibt es cmdlets um Scheduled Tasks per PowerShell zu konfigurieren. Super, dachte ich mir! Das hilft mir bei der Automation von Serverkonfigurationen.

Soweit hat das auch prima geklappt, nun muss ich jedoh einen Task mit einer Action erstellen, die nicht ein Programm ausfühern (Execute) sondern eine Mail versenden soll. Die Hilfe des cmdlet sagt mir jedoch ganz frech, dass nur Execute möglich ist: http://technet.microsoft.com/en-us/library/jj649817.aspx

Das wäre natürlich sehr ärgerlich, wenn ich deshalb wieder auf XML-Dateien (exportierte Tasks) oder ähnliches umsteigen muss.

Ich habe gesehen man kann ein COM-Objekt anzapfen (das cmdlet macht vermutlich nichts anderes) worin auch die Möglichkeit zum Senden von Mails enthalten ist: http://macaalay.com/2013/10/02/programmatic-management-of-scheduled-task/
Leider sind meine Programmierkentnisse nicht so gut, dass ich hier ohne Hilfe weiter komme. Kann mir jemand helfen auf das COM-Object in PowerShell zuzugreifen und eine Action zum E-Mail versenden zu erstellen, die ich idealerweise in einer Variable speichern und Register-ScheduledTask mitgeben kann.

Danke schon mal für eure Hilfe!

Gruß,
Michael




Desktophintergrund anpassen

$
0
0

Hallo,

ich verwende meinen Rechner für die Arbeit in verschiedenen Netzen. Je nachdem wo ich gerade bin, muss ich auch das Patchkabel umstecken. Um die IP-Adressen anzupassen habe ich mir schon ein Skript geschrieben, welches auch super funktioniert. Nun hatte ich noch die Idee, dass ich den Desktophintergrund je nach Netzwerk ändere, um auf einen Blick auf den Desktop zu wissen, wo ich mich gerade befinde.

Zur Zeit verwende ich folgendes Skript:

Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop\' -Name Wallpaper -value "D:\Wallpaper\NetzA.jpg"

RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters

(hab ich von  hier abgeschaut)

Leider wird es ab Bildschirm aber nicht geändert. Wenn ich in den Einstellungen nachsehe, ist aber schon geändert - nur sehen tu ich es halt nicht.

Vielleicht weiß jemand Rat?


lg, Ingemar


Ausgabe einer Liste Mit Feldern und Text möglich?

$
0
0

Hallo,

ich versuche, einen Script zu schreiben, der mir folgendes ausgibt:

Rename SamAccountName GivenName.Surname

Wie ich aus dem AD die drei Felder auslese und in eine Textdatei schreibe ist mir klar:

Get-ADUser Filter *| Select-Object SamAccountName, Givenname, Surname | Export-Csv c:\Test.csv

aber wie bringe ich den Text (Rename) da mit rein? 

Hintergrund ist eine größere Umstellung in der Anmeldeprozedur und damit einhergehend die Umbenennung der entsprechenden Profilordner. Das würde ich gern mit einer CMD lösen.

Ich danke schon mal für Ideen.


Rene Hubert - Systemadministrator - DRK KH Lichtenstein gGmbH

Powershell für Extrahieren von Ereignissen im Eventlog

$
0
0

Hallo Leute

Ich bin gerade an einem Script, um einzelne Ereignisse aus dem Eventlog zu extrahieren doch ich finde einfach keinen Weg im Internet. Ich hoffe, dass ihr einen Vorschlag habt, wie ich das Problem lösen kann. Letztendlich soll das Script das letzte Ereignis mit der Event-ID 24 finden, das zugehörige XML holen und als E-Mail gesendet werden.

Danke für eure Vorschläge und Hilfe :)


Multifunktionsscript für SCCM

$
0
0

Hallo,

ich stehe vor folgendem Problem:

Über den SCCM möchte ich gerne mehrere PCs bespielen, muss dabei aber eine Namenskonvention einhalten.

Hierzu möchte über ein Script das Preboot läuft folgende Abfragen ausführen, um den Namen zusammen zu basteln.

Hier ein Beispiel:

Wenn IP Adresse im Bereich von Standort = "10.20.* , füge "BER" zu Namen hinzu.

Wenn nicht, prüfe nächsten Adressbereich (Insgesamt vier).

Wenn WMI-Abfrage nach Hersteller = "Lenovo" , füge "LT" zu Namen hinzu.

Wenn nicht, prüfe nächsten Hersteller (Insgesamt drei).

Wenn MAC-Adresse = MAC-Adresse aus einer Liste auf Share, füge ID, die zur MAC gehört, zu Namen hinzu.

Wenn MAC-Adresse ungleich MAC aus Liste, gehe Liste weiter durch bis Abfrage passt.

Ich weiß, dass ich da mit IF und FOR Schleifen arbeiten muss, aber ich kann das einfach "schriftlich" nicht umsetzen :(

Excel Automatisierung mit Powershell und dem Scheduler

$
0
0

Hallo,

ich habe folgendes Problem :

Ich möchte gern ein Powershellskript ausführen welches eine Excel erzeugt. Dieses funktioniert ohne Scheduler wunderbar und mit der Option "Run only when user is logged on" auch.

Das Problem tritt nun auf wenn ich "Run whether user is logged on or not" auswähle und versuche das Skript im "Hintergrund" zu starten. In diesem Fall kommt das Skript nie zum Ende. Ausführender User ist der angemeldete User und dieser hat auch genügend Rechte. Sämtliche Möglichkeiten mit "Run with highest privileges" habe ich ausprobiert leider ohne Erfolg.

Ich denke es hängt mit dem in diesem Artikel (http://support.microsoft.com/kb/257757/de) beschriebenen Problemen zusammen. Mein Frage ist nun wie ich es hinbekomme das es eventuell doch möglich ist und ob damit schon jemand Erfahrung hat ?

Gruß,

Aljoscha

Variable mitten im Gruppenname verwenden beim automatischen Erstellen von Gruppen im AD

$
0
0

Hallo zusammen

Ich versuche das bisher erfolgte manuelle Erstellen von Gruppen im AD zu automatisieren was mir bis jetzt eigentlich recht gut und einfach gelang. Nun stellt es aber beim Gruppen erstellen an.

Ich habe eine Variable Namens $Kundenname

Nun möchte ich in der OU in der ich gerade bin ein globale Security-Gruppe namens

G_BTQ_$Kundenname_CTX-Office

erstellen mit folgendem Script:

New-ADGroup-Name"G_BTQ_$Kundenname_CTX-Office"-Groupscopeglobal

Es gibt keinen Fehler, dafür sieht der Gruppenname im AD nun so aus:  G_BTQ_-Office

Wie kann ich das Ding dazu vergewaltigen hier den korrekten Variablennamen auszugeben? Die Variable wurde natürlich vorher korrekt erstellt und lässt sich auch Abrufen mit $Kundenname.

Danke für eure Mithilfe.

Grüsse aus der Schweiz

Longbow

Powershell - Disk Part - Robocopy - Medium ist schreibgeschützt

$
0
0

Ein Windows 7 64Bit Enterprise Computer mit 4 Festplatten

Datenträger 0 = B: = Backup
Datenträger 1 = E: = Archiv
Datenträger 2 = D: = Data
Datenträger 3 = C: = Windows

Die Festplatten B und E sind identisch.
Ziel:

  • Ein Script, welches jeden Abend um 23 Uhr startet
  • den Datenträger 0 online bringt,
  • Daten von Datenträger 1 auf Datenträger 0 per Robocopy kopiert.
  • Danach den Datenträger 0 wieder offline nimmt.
  • Herunterfahren des Computers.

Dazu habe ich folgendes Script geschrieben:

$commandonline=@'
select disk 0
online disk
attributes disk
attributes disk clear readonly
attributes disk
select volume 0
attributes volume clear readonly
'@
$result = $commandonline | diskpart

Add-Content C:\temp\backup_dev.log -value $result



robocopy "E:\" "B:\" /MIR /COPYALL /LOG:C:\temp\backup.log /XD '$RECYCLE.BIN' 'System Volume Information' /XA:CS /W:2 /R:2 
$commandoffline=@'
select disk 0
offline disk
'@
$commandoffline | diskpart

shutdown /s /f /t 10

Die backup_dev.log

Microsoft DiskPart-Version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
Auf Computer: GRK1WD39

DISKPART> 
Datenträger 0 ist jetzt der gewählte Datenträger.

DISKPART> 
Der gewählte Datenträger wurde erfolgreich online geschaltet.

DISKPART> Aktueller schreibgeschützter Zustand: Ja
Schreibgeschützt  : Ja
Startdatenträger  : Nein
Auslagerungsdatei-Datenträger  : Nein
Ruhezustandsdatei-Datenträger  : Nein
Absturzabbild-Datenträger  : Nein
Clusterdatenträger : Nein

DISKPART> 
Die Datenträgerattribute wurden erfolgreich gelöscht.

DISKPART> Aktueller schreibgeschützter Zustand: Nein
Schreibgeschützt  : Nein
Startdatenträger  : Nein
Auslagerungsdatei-Datenträger  : Nein
Ruhezustandsdatei-Datenträger  : Nein
Absturzabbild-Datenträger  : Nein
Clusterdatenträger : Nein

DISKPART> 
Volume 0 ist jetzt das gewählte Volume.

DISKPART> 
Die Volumeattribute wurden erfolgreich gelöscht.

DISKPART> 


Und die backup.log bis es manuell abgebrochen habe:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren fr Windows                              
-------------------------------------------------------------------------------

  Gestartet: Sat Feb 15 16:05:50 2014

   Quelle : E:\
     Ziel : B:\

    Dateien : *.*
	    
 Ausf. Verzeichnisse : $RECYCLE.BIN
	    System Volume Information
	    
  Optionen: *.* /S /E /COPYALL /PURGE /MIR /XA:SC /R:2 /W:2 

------------------------------------------------------------------------------

	                   0	E:\
2014/02/15 16:05:50 FEHLER 19 (0x00000013) NTFS-Sicherheit wird in Zielverzeichnis kopiert B:\
Das Medium ist schreibgeschtzt.


	 Neues Verz.       0	E:\protected\
2014/02/15 16:05:50 FEHLER 19 (0x00000013) Zielverzeichnis wird erstellt B:\protected\
Das Medium ist schreibgeschtzt.

2 Sekunden wird gewartet... Wiederholung...
2014/02/15 16:05:52 FEHLER 19 (0x00000013) Zielverzeichnis wird erstellt B:\protected\
Das Medium ist schreibgeschtzt.

2 Sekunden wird gewartet... Wiederholung...
2014/02/15 16:05:54 FEHLER 19 (0x00000013) Zielverzeichnis wird erstellt B:\protected\
Das Medium ist schreibgeschtzt.


Fehler: Die maximale Anzahl von Wiederholungsversuchen wurde berschritten.

2014/02/15 16:05:54 FEHLER 19 (0x00000013) Zielverzeichnis wird erstellt B:\protected\
Das Medium ist schreibgeschtzt.


	 Neues Verz.       1	E:\protected\1- Administrativ\
2014/02/15 16:05:54 FEHLER 19 (0x00000013) Zielverzeichnis wird erstellt B:\protected\1- Administrativ\
Das Medium ist schreibgeschtzt.

2 Sekunden wird gewartet... Wiederholung...
2014/02/15 16:05:56 FEHLER 19 (0x00000013) Zielverzeichnis wird erstellt B:\protected\1- Administrativ\
Das Medium ist schreibgeschtzt.

2 Sekunden wird gewartet... Wiederholung...
2014/02/15 16:05:58 FEHLER 19 (0x00000013) Zielverzeichnis wird erstellt B:\protected\1- Administrativ\
Das Medium ist schreibgeschtzt

Das Problem:
Führe ich die Diskpart Befehle manuell über die Console aus, so wir das Laufwerk Online geschaltet und ist nach der Eingabe von dem Befehl "attributes disk clear readonly" nicht mehr schreibgeschützt.

Führe ich die exakt gleichen Befehle mit dem Script aus, so bleibt das Laufwerk Schreibgeschützt. Auch wenn Die Info von "Attributes disk" etwas anderes sagen.

Beispielscripte für AD Verwaltung

$
0
0

Hallo zusammen

Bin noch neu in diesem Gebiet.

Könnt ihr mir seiten empfehlen auf denen ich Beispiele zu folgenden Themen finde

User erstellen und über Gruppen berechtigen

Ordner mit dazugehörigen Berechtigungsgruppen erstellen

und allgemeine nützliche Scripte

Danke

LG

Suche guten Cod Signirungs Zerifikat Anbiter fuer Powershell scgripts zu signiren

$
0
0

HI

Da Unsre eingen CA kiene software signirungs Zertifikate ertellen kann suche ich eine anbiter der Sole anbite und Personen die

dass auch schon umgesezt haben.

Danke im voraus

PS-Script entschlanken - nur wie?

$
0
0

Guten Morgen zusammen,

folgendes Szenario: Es gibt sechs Ordnerpfade und je nach Pfad soll der Inhalt des Ordners anders abgearbeitet werden, wobei es nur zwei Methoden der Abarbeitung gibt.

  • Ordner1 -> Methode1
  • Ordner2 -> Methode2
  • Ordner3 -> Methode2
  • Ordner4 -> Methode2
  • Ordner5 -> Methode1
  • Ordner6 -> Methode2

Im Moment löse ich das noch so, dass die Ordner nach und nach abgearbeitet werden. Dadurch wird das Script aber ziemlich groß, pro Ordner bzw. Methode sind das ~120 Zeilen mit Code. Ich würde mir jetzt wünschen dass ich das Script so umbauen kann, dass die Ordner der einzelnen Methode über einen Codeblock abgearbeitet werden - nur wie?

Ich brauche zwei Blöcke, pro Methode einen, und pro Block muss ich dann mittels Schleife die zwei bzw. vier Ordnerpfade abarbeiten. Aber wie kriege ich das am besten hin?

Danke und Gruß

Steffen


Nutzerdaten im Script mitgeben

$
0
0

Hallo,

ich glaub ich steh gerade auf dem Schlauch, aber ich finde keine Möglichkeit, das ich im PS Script die aktion als andere User ausführen kann.
Ich möchte eine Backup meiner Eigenen Dateien auf einem anderen Rechner ablegen. Diese befinden sich nicht in einer Domäne, sondern in der selben Arbeitsgruppe / Subnetz.
Ich bekomme somit immer die Meldung "zugriff verweigert". Händisch funktioniert das alles Problemlos, würde das aber gern automatisieren. Das komische dabei ist auch noch, das bei jedem 2. lauf die Dateien trotz "zugriff verweigert" die Dateien kopiert werden.
Ich hatte es auch schon mit net use probiert aber das hat bei mir auch nix gebracht

vielen Dank im voraus für Hilfe

Speicherentwicklung mit Powershell auslesen und Excel darstellen.

$
0
0

Hallo Zusammen!

Ich arbeite zurzeit an einer kleinen Datei-Analyse-Task. Nun möchte ich folgende Funktion in diese Task integrieren.

Es sollen jeden Tag von vorgegeben Ordnern, der Verzeichnisname mit der Summe der Größe aller Dateien ausgelesen werden. Also zum Beispiel:

  • D:/Buchhaltung (450 MB gesamt genutzter Speicher)
  • D:/Geschäftsführung (500 MB gesamt genutzter Speicher)
  • D:/Einkauf (300 MB gesamt genutzter Speicher)
  • usw.

Dieser Wert soll Täglich neu ausgelesen werden und in einer Excel-Tabelle ergänzt werden. Diese sollte dann eine Grafik ausgeben mit dem Zeit-Verlauf des genutzten Speichers im Verhältnis Speicherbereich zu Speicherbereich und dem gesamten verfügbaren Speicher. Das Auslesen usw. bekomme ich schon hin. Vorallem ist mir wichtig eine Lösung zu finden wie die Excel Tabelle automatisch gefüllt werden kann und auch jeden Tag automatisch um neue Daten ergänzt werden kann.


Ich hoffe ihr könnt mir weiterhelfen :)
Liebe Grüße!

Umlaute in PowerShell Script verwenden

$
0
0

Moin zusammen,

ich möchte über die Powershell eine CSV-Datei einlesen, um damit im AD Benutzerkonten anzulegen.

So weit, so gut. Die CSV liegt im Unicode vor und Umlaute werden auch von allen möglichen Texteditoren korrekt angezeigt.Nun möchte ich aus dem Vornamen und dem Nachnamen z.B. die Mailadresse erstellen.

Bekanntermaßen sind Umlaute sowie das "ß" in der Mailadresse nicht zugelassen.

Ferner müssen Leerzeichen abgefangen werden.

Folgenden Code habe ich erfolgreich erstellt (Ausschnitt):

	# Herausfiltern und Ersetzen von Umlauten und Leerzeichen aus Nachnamen
	$Nachname = $user.nachname.ToString()
	if ($Nachname.contains(" "))
	{
	$output += "`nHinweis: Nachname enthält Umlaut ä"
	$Nachname01 = $Nachname.replace(" ",".")
	}
	else
	{
	$Nachname01 = $Nachname
	}
	if ($Nachname01.contains("ö"))
	{
	$output += "`nHinweis: Nachname mit Umlaut"
	$Nachname02 = $Nachname01.replace("ö","oe")
	$output += "`nErsetzt: --> " + $Nachname02
	}
	else
	{
	$Nachname02 = $Nachname01	
	}
[...]

Das Herausfiltern und Ersetzen von Leerzeichen funktioniert.

Kommen wir aber zum Erkennen und Ersetzen von Umlauten oder dem "ß", streikt die Powershell.

Umlaute werden einfach nicht ersetzt. Muss ich hier an entsprechender Stelle im Script Umlaute ggf. "Maskieren"?

Bin für jeden Tipp dankbar!

Inhalte zweier Tabellen zusammenführen und in einer dritten Tabelle wieder Ausgeben

$
0
0

Hallo zusammen,

ich bräuchte eure Hilfe. Ich möchte gerne zwei Inhalte einer Tabelle zusammenführen und als dtitte wieder Ausgeben.

Am besten mit Trennzeichen in der Ausgabedatei. Hatte schon was
ausprobiert. Sind aber Fehler enthalten

$user1 =
import-csv user1.csv

$user2 =
import-csv user2.csv

$header = “ID,
Name, Ortsname”

 

Add-Content –Value
$header Ausgabe.csv

 

foreach ($ID1
in $user1)

{foreach
($ID2 in $user2)}

       {IF ($ID1.ID -eq $ID2.ID)}

              {Add-Content –Value ($ID1.ID.ToString()
+ “,” + $ID1.Name.ToString() + “,” + $ID2.Ortsname.ToString ()) Ausgabe.csv }

Vielen Danke schon mal


Aprosh admin tool

$
0
0

Guten Tag alle miteinander,

ich bin's mal wieder. ;-))

Dank Peter, Denniver und Powerturtle bin ich zwar schon einiges weitergekommen aber mir ist an einer Lösung etwas aufgefallen was nicht ganz funktioniert wie ich es gerne hätte.

Jemand von Euch (ich glaube es war Peter) hat mir einige Codes geändert sodass ich in dem Tool unter System Info - User Name, SID, Fullname, Description, Disabled angezeigt bekomme.

Leider funktioniert das nur für den lokalen PC. Wenn ich das tool mit einem anderen PC verbinde erscheint nur der Name.

Ich bin wie immer reichlich mit google und Büchern am nachforschen aber leider bringen mich die Unterschiedlichen Code's immer nur durcheinander.

Bin mir nicht sicher wo das Problem liegt zumal ich bis dato noch nicht die richtigen Erklärungen über XML -> ListView -> XML gefunden habe die ich verstehen kann.

Das sieht vom code her fast überall anders aus und verwirrt mich nur noch mehr. 

Deshalb würde ich mich über Eure Unterstützung freuen!!

XML file:

 <User Enabled="True">
      <CurrentUser Enabled="True"/>
      <UserSID Enabled="True"/>
      <UserFullname Enabled="True"/>
      <UserDescription Enabled="True"/>
      <UserDisabled Enabled="True"/>
    </User>

Was mich hier etwas verwirrt ist der code an unterschiedlichen Stellen. Einmal mit "True... etc und in anderen Bereichen ohne.

<LocalAdmins>
    <Property>Name</Property>
    <Property>Domain</Property>
    <Property>Class</Property>
  </LocalAdmins>

PS file:

                                    

            #  
            # Daten von aktuellem Benutzer einfügen
            #
    if ($XML.Options.SystemInfo.User.Enabled -eq $true){
   $Item = New-Object System.Windows.Forms.ListViewItem("User")
                    $Item.BackColor = "Red"                           # "Black" Change Colour from System Info Header General
                    $Item.ForeColor = "Yellow"                        # "White" Change Text Colour from System Info Header General
   $lvMain.Items.Add($Item)

if($XML.Options.SystemInfo.User.CurrentUser.Enabled -eq $true){
$Item = New-Object System.Windows.Forms.ListViewItem("Name")
if($SysComp.UserName -ne $null){$Item.SubItems.Add($sysComp.UserName)}
else{$Item.SubItems.Add("")}
$lvMain.Items.Add($Item)

                }
if($XML.Options.SystemInfo.User.UserSID.Enabled -eq $true){
$Item = New-Object System.Windows.Forms.ListViewItem("SID")
If($CurrUserAcc) {
if($CurrUserAcc.SID -ne $null){$Item.SubItems.Add($CurrUserAcc.SID)}
else{$Item.SubItems.Add("")}
$lvMain.Items.Add($Item)
}

}

if($XML.Options.SystemInfo.User.UserFullname.Enabled -eq $true){
$Item = New-Object System.Windows.Forms.ListViewItem("Fullname")
If($CurrUserAcc) {
if($CurrUserAcc.Fullname -ne $null){$Item.SubItems.Add($CurrUserAcc.Fullname)}
else{$Item.SubItems.Add("")}
$lvMain.Items.Add($Item)
}

}
if($XML.Options.SystemInfo.User.UserDescription.Enabled -eq $true){
$Item = New-Object System.Windows.Forms.ListViewItem("Description")
If($CurrUserAcc) {
if($CurrUserAcc.Description -ne $null){$Item.SubItems.Add($CurrUserAcc.Description)}
else{$Item.SubItems.Add("")}
$lvMain.Items.Add($Item)
}

}
if($XML.Options.SystemInfo.User.UserDisabled.Enabled -eq $true){
$Item = New-Object System.Windows.Forms.ListViewItem("Disabled")
If($CurrUserAcc) {
if($CurrUserAcc.Disabled.Tostring() -ne $null){$Item.SubItems.Add($CurrUserAcc.Disabled.Tostring())}
else{$Item.SubItems.Add("")}
$lvMain.Items.Add($Item)
}

}
}

Irgendwie scheint, zumindest meiner Meinung nach, der Verweis/Hinweis zu fehlen das es sich um einen Remote PC handelt von dem die Daten eingelesen werden sollen.

Habe bis jetzt auch nichts gefunden was mir die folgenden Beispielzeilen genauer und vor allem verständlich erklärt.

if($XML.Options.SystemInfo.User.UserDisabled.Enabled -eq $true){         # ??????
$Item = New-Object System.Windows.Forms.ListViewItem("Disabled")
If($CurrUserAcc) {#??????
if($CurrUserAcc.Disabled.Tostring() -ne $null){$Item.SubItems.Add($CurrUserAcc.Disabled.Tostring())}                      #??????
else{$Item.SubItems.Add("")}

Vorab vielen Dank für die Unterstützung!!



Viewing all 2314 articles
Browse latest View live


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