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

List Items anzeigen, aber bitte keine leeren

$
0
0

Hallo,

mit folgendem Script lasse ich mir von einer Liste (SharePoint 2010) die Inhalte anzeigen:

cls
Add-PSSnapin Microsoft.SharePoint.PowerShell –ErrorAction SilentlyContinue

$sourceWebURL = "http://test.bla/"
$sourceListName = "testliste"

$spSourceWeb = Get-SPWeb $sourceWebURL
$spSourceList = $spSourceWeb.Lists[$sourceListName]

#$spSourceItems = $spSourceList.GetItems()
#$spSourceItems | ForEach-Object{
#	Write-Host $_['ID'] $_['End of Lifecycle']
#}

$spSourceItems = $spSourceList.Items | where {$_['End of Lifecycle'] -ne 0}
$spSourceItems | ForEach-Object{
	Write-Host $_['ID'] $_['End of Lifecycle']
}

Der auskommentierte Block zeigt mir alle Items an.

Nun ist aber nicht bei jedem Item ein Eintrag unter 'End of LifeCycle'.
Somit habe ich im unteren Teil versucht die Ausgabe zu filtern.
Mit -ne 0 klappt es schon einmal nicht. ;-)

Die Ausgabe wäre beispielsweise:

1 9/7/2015 12:00:00 AM
2 10/5/2016 12:00:00 AM
3
4 13/10/2014 12:00:00 AM

Durch das Filtern möchte ich folgende Ausgabe erreichen:

1 9/7/2015 12:00:00 AM
2 10/5/2016 12:00:00 AM
4 13/10/2014 12:00:00 AM

Jemand eine Idee, einen Hinweis?

Danke
Dirk



Email senden von normaler CMD via Powershell

$
0
0

Hallo,

ich würde gerne in einer normalen CMD eine Email via Powershell versenden.

In der Powershell geht das problemlos hiermit:

send-mailmessage -to “to@domain.com” -from “from@domain.com” -subject “My Testmail” -smtpserver “10.10.10.10″ -body “This is a test with spaces.”

Wenn ich das von der CMD aus ausführen möchte geht das normalerweise mit vorgestellten powershell aufruf also:

powershell.exe -command send-mailmessage -to “to@domain.com” -from “from@domain.com” -subject “My Testmail” -smtpserver “10.10.10.10″ -body “This is a test with spaces.”

Jetzt habe ich aber das Problem, dass dies nur funktioniert wenn sich weder im Betreff noch im Body Leerzeichen befinden. Wie wäre der Aufruf korrekt ?

Vorab besten Dank

Gruß Wolfgang

neue Domäne, 400 User- alle einmal anmelden

$
0
0

Hallo zusammen,

wir haben eine komplett neue Domäne eingerichtet und dort ca. 400 User mit Exchange Postfächern eingerichtet.

Um die User fertig einzurichten, muss jeder einmalig an das System angemeldet werden, damit GPOs (incl. Ordnerumleitungen etc) greifen können und der User fertig eingerichtet werden kann.

Jetzt dauert das bei 400 Usern recht lange.

Gibt es eine Möglichkeit (Powershell, Tool ???), diese Anmeldung sozusagen virtuell durchzuführen, es für die AD aber so ist, als würde sich der User an seinem client anmelden?

LG

B_schraven

PS-Script soll eine Textdatei in eine andere verändert übertragen.

$
0
0

Hallo zusammen ich habe folgendes Problem und hoffe mir kann dabei jemand helfen,

mein Scipt soll mit Hilfe einer .ini Funktionieren in der ich den Pfad zum Inputfile festlegen kann sowie den Pfad des Outputfiles. Zudem soll in der .ini gesagt werden können welches Objekt welchem zugeordnet wird. Bsp. EKST ist nachher EKONT.

Das Script soll Werte aus dem Input- ins Outpufile schreiben.
Mein Problem ist das die Zeilen in etwa so aussehen:
@SYS:007111@MON:201312@ID:MOBIL1@SKST:2165570@ECOA:80687703@LSTAR:7039@MAT:990465989@COW:32,9@SDW:32,9@BTXT:1 x Speicherkarte 32 GB - Ridder@RTXT:1 x Speicherkarte 32 GB - Ridder

Im Outputfile sollen diese aber dann so aussehen:

SYS;ID;SKST;MAND;KUND;GENA;KONID;EKART;EKONT;LSTAR;ABRINT;ABRVON;MENGE;COWE;RTXT;;;;;;;;
Rheinfelden;1;2215077825;15;109225;;;;;ITK050;1;201312;1;144;Tel.7281 Cordless einger., Analog demont (05.12.2013 Sp„ne 2 h);;;;;;;;

Das Outputfile ist eine .csv welche als Exceltabelle später dienen soll.

Mein Problem ist das ich NUR die werte ausgeben will nicht aber das [SYS:] usw. sondern eben nur den Wert 007111.

Dann habe ich weiter das Problem, dass ich je nach [SYS] usw. eine andere stelle beschreiben soll im Outputfile.

Zudem kommt noch das manche Inhalte komplett durch neue ersetzt werden sollen da dies alte Produktnr sind und ich im Outputfile die neuen haben möchte.

Ich komme kein Stück weiter deswegen hoffe ich das Ihr mir evtl helfen könnt.



Powershell Script Prozess prüfen

$
0
0
Guten Tag,


ich benötige Hilfe beim Scripten.
Das Script soll Prüfen ob die Benutzer einen Prozess "Dump.exe" zwei mal Ausführen.
Wenn ja dann soll eine E-mail mit dem Namen des User an den Administrator verschickt werden.
Wie fange ich da am besten an? Ich bin ein Anfänger was Scripten an geht.





Gruß


Afgstyler

Gesamtsumme Netzwerktraffic auslesen

$
0
0

Ich möchte gerne auslesen können, wieviel Traffic eine bestimmte Netzwerkkarte über einen längeren Zeitraum macht. Im Grunde brauche ich genau die Werte, die man für "Gesendet" und "Empfangen" sieht, wenn man bei einer Netzwerkverbindung auf "Status" klickt.

Ich habe bisher probiert:

.NET-Klasse System.Net.NetworkInformation.IPInterfaceStatistics mit Powershell verwenden.

Diese Klasse hat anscheinend die benötigten Eigenschaften, siehe

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ipinterfacestatistics(v=vs.110).aspx

Allerdings weiß ich nicht, wie ich die Klasse richtig verwenden soll. Zunächst musste ich an einem Rechner von einem Kollegen testen, da die Klasse bei mir anscheinend nicht gefunden wird. .NET 4.5 ist installiert. Assembly ist laut MSDN "System", sollte also nicht das Problem sein?

[System.Net.NetworkInformation.IPInterfaceStatistics]
Der Typ [System.Net.NetworkInformation.IPInterfaceStatistics] kann nicht gefunden werden: Stellen Sie sicher, dass die Assembly, die diesen Typ enthält, geladen wird.
Bei Zeile:1 Zeichen:54
+ [System.Net.NetworkInformation.IPInterfaceStatistics] <<<<+ CategoryInfo          : InvalidOperation: (System.Net.Netw...rfaceStatistics:String) [], RuntimeException+ FullyQualifiedErrorId : TypeNotFound

Bei einem anderen Rechner konnte ich obige Zeile zwar ohne Fehler abschicken, konnte damit aber nichts anfangen. Mit New-Object ließ sich kein Objekt erstellen, "Konstruktor nicht gefunden". Ist das eine statische Klasse? Bei MSDN steht ein Konstruktor angegeben.

Wie verwendet man diese Klasse richtig, sodass ich auf die entsprechenden Properties zugreifen kann?

Daten per WMI auslesen

Hier die gängige Antwort die ich immer wieder zu diesem Thema finde. Lediglich die Daten pro Sekunde, die Klasse enthält keine Gesamtwerte.

$computer = "LocalHost" ;

$namespace = "root\CIMV2" ;

$Tcpip_NI = Get-WmiObject -class Win32_PerfRawData_Tcpip_NetworkInterface -computername $computer -namespace $namespace ;

$Tcpip_NI | Select BytesReceivedPersec,BytesSentPersec,BytesTotalPersec ;

Vielleicht gibt es doch eine Lösung per WMI?

Per netsh:

$netsh_interface_stats = netsh interface ip show interface ; $netsh_interface_stats | Select-string "In Octets" ; $netsh_interface_stats | Select-string "Out Octets" ;

Ich verstehe nicht, was mit 

Select-string "In Octets"

bezweckt werden soll? Es erscheint keine Ausgabe.

Per netstat -e

Gibt zwar entsprechende Werte zurück, diese sind aber viel zu groß. Ich wüßte gerne, was hier alles mit eingerechnet wird. Wenn ich beispielsweise 600MB übertrage, ist der Wert für "Gesendet" danach einige GB höher.

Perfmon

Keine entsprechenden Daten vorhanden


Was habt ihr sonst für Ideen? Ich möchte ungern ein größeres Programm zur Netzwerküberwachung laufen lassen, da die Werte später für mehrere Produktivsysteme erfasst werden sollen. Es muss doch möglich sein, genau diese Werte zu bekommen, die im Status der Netwerkverbindung angezeigt werden.

Powershell Mount-DiskImage (ISO File) Laufwerksbuchstabe

$
0
0

Wie kann ich bei "Powershell Mount-DiskImage" den gewünschten Laufwerksbuchstaben bestimmen?

Meine derzeitiger Befehl lautet: 

Mount-DiskImage -ImagePath "C:\Iso\mein.iso"

Ich möchte das immer ein bestimmter Buchstabe gemountet wird, für eine Freigabe.

Calling in current directory via dot-slash

$
0
0

Hello everyone,

just a simple question but it wondered me a bit: Calling files in the current directory can be done in PS via .\executable.exe

In fact, via .\ I can access the current Path. However, if I enter ./ it also works. This surprises me because I thought ./ is for accessing the root folder of the current drive. Why can I call a file in the current path with ./ in PowerShell?

Thanks!
Christian


Suchen und ersetzen von Text in mehreren Dateien

$
0
0

Hallo zusammen,

wir haben hier gerade ein Problem. Wir suchen eine PowerShell Funktion die den Inhalt von mehreren XML Dateien in einem Ordnerpfad sucht und ersetzt. Wir haben schonmal was ausprobiert, klappt aber noch nicht.

foreach ($file in Get-ChildItem $pfadTB.Text) {
	Get-Content $pfadTB.Text + "\" + $file | Foreach-Object {$_.Replace($searchTextTB.Text,$replaceTextTB.Text)} | Set-Content $pfadTB.Text + "\" + $file

}


Viele Gr&#252;&#223;e aus Stuttgart
Christian Holzwarth

Ist ein Benutzer per RemoteDesktop an einem PC angemeldet?

$
0
0
Hallo zusammen,

wie der Titel schon sagt würde ich gern per PowerShell abfragen ob an einem (oder mehreren) PCs im Netzwerk ein Benutzer (wer ist mir egal, nur das ob ist Wichtig) per RemoteDesktop angemeldet ist.

Wenn keiner angemeldet ist würde ich dann nämlich gerne automatisch per PowerShell ein paar Tasks starten können (z.B. einen Reboot durchführen).

Ich habe es schon mit Get-WmiObject -Class Win32_ComputerSystem versucht, allerdings zeigt es mit den per RemoteDesktop angemeldeten Benutzer nicht an.

Vorab vielen Dank für Hilfe

Viele Grüße


Erstellen von Verzeichnissen aber nur wenn diese nicht existieren

$
0
0

Guten Morgen,

ich habe ein Skript gefunden, welches basierend auf den SamAccountNamen, die zuvor vom AD in ein Textfile exportiert wurden, Userverzeichnisse in der Form "vorname.nachname" erstellt. Weiterhin kann man angeben, ob noch bestimmte Benutzer/Gruppen Admin-Berechtigungen auf dieses Verzeichnis bekommen sollen.

Das Skript funktioniert bestens, allerdings prüft es nicht nach, ob das Verzeichnis schon besteht und überschreibt dann die Berechtigungen bzw. aktualisiert diese.

Ich habe jetzt schon versucht, das Skript so umzubauen, mittels "if not exist" aber irgendwie bekomme ich es nicht hin, vielleicht könnt Ihr mir helfen?

#requires -Version 2

<#
.SYNOPSIS
    This Script can help you to create several folders, and assign appropriate permission to each folder.
.DESCRIPTION
 This Script can help you to create several folders, and assign appropriate permission to each folder.
.PARAMETER  Path
 Indicate the location, where these folders will be created.
.PARAMETER  UserList
 Indicate a TXT file, which contain a name list of several users, one Name each line. Script will create folder for these users.
.PARAMETER FullControlMember
 Indicate the users or groups, who have the permission to access each user’s folder.
 Domain admins and system account will be the default value, whatever -FullControlMember be chosen or not. This parameter is optional.
.EXAMPLE
    .\CreateHomeFolder.ps1 -Path "c:\test" -UserList "c:\list.txt” -FullControlMember "file admin","fileadmins"
 
  This command will to create home folders for several users. Grant the exact user,
 user “File Admin” and group “FileAdmins” Full control permission to this folders.
.LINK
 http://msdn.microsoft.com/en-us/library/ms147785(v=vs.90).aspx
#>
param
(
 [String]$Path,
 [String]$UserList,
 [String[]]$FullControlMember
)

$Users=@()
$Results=@()
Import-Module ActiveDirectory
if (-not (Test-Path $Path))
{
 write-error -Message "Cannot find path '$Path' because it does not exist."
 return
}
if (-not (Test-Path $UserList))
{
 write-error -Message "Cannot find  '$UserList' because it does not exist."
 return
}
else
{
 $Users=Get-Content $UserList
}
#Check whether the input AD member is correct
if ($FullControlMember)
{
 $FullControlMember|ForEach-Object {
  if (-not(Get-ADObject -Filter 'Name -Like $_')){
   $FullControlMember= $FullControlMember -notmatch $_; Write-Error -Message "Cannot find an object with name:'$_'"
  }
 }
}
$FullControlMember+="NT AUTHORITY\SYSTEM","BUILTIN\Administrators"

foreach($User in $Users)

 $HomeFolderACL=Get-Acl $Path
 $HomeFolderACL.SetAccessRuleProtection($true,$false)
 $Result=New-Object PSObject
 $Result|Add-Member -MemberType NoteProperty -Name "Name" -Value $User
 if (Get-ADUser -Filter "SamAccountName -eq '$User'")
 {
  New-Item -ItemType directory -Path "$Path\$User"|Out-Null
  #set acl to folder
  $FCList=$FullControlMember+$User
  $FCList|ForEach-Object {
  $ACL=New-Object System.Security.AccessControl.FileSystemAccessRule($_,"FullControl","ContainerInherit,ObjectInherit","None","Allow")
        $HomeFolderACL.AddAccessRule($ACL)
        }
  Set-Acl -Path "$Path\$User" $HomeFolderACL
  $Result|Add-Member -MemberType NoteProperty -Name "IsCreated" -Value "Yes"
  $Result|Add-Member -MemberType NoteProperty -Name "Remark" -Value "N/A"
 }
 else
 {
  $Result|Add-Member -MemberType NoteProperty -Name "IsCreated" -Value "No"
  $Result|Add-Member -MemberType NoteProperty -Name "Remark" -Value "Cannot fine an object with name:'$User'"
 }
 $Results+=$Result
}
#Generate a report
$Results|Export-Csv -NoTypeInformation -Path "$Path\Report.csv"
if ($?) {Write-Host "Please check the report for detail: '$Path\Report.csv'"}

Powershell verläuft sich in Batch

$
0
0

powershell -noprofile -command $Profilepath="\\AS_Server\Bu.txt" powershell -noprofile -command "Get-Content $Profilepath | Foreach-Object {(Get-Content $_) | Out-String | Foreach-Object {$_.Replace('Status=OFF','Status=OFF')} | Set-Content $_}"


Get-Content : Cannot bind argument to parameter 'Path' because it is null.
At line:1 char:12+ Get-Content <<<<  $Profilepath | Foreach-Object {(Get-Content $_) | Out-String | Foreach-Object {$_.Replace('Status=OFF','Status=OFF')} | Set-Content $_}    + CategoryInfo          : InvalidData: (:) [Get-Content], ParameterBindingValidationException    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetContentCommand

Das war der erste versuch, der andere sah so aus:

Code:
  1. powershell -noprofile -command "Get-ChildItem –path “\\AS_Server\Bu.txt” | Foreach-Object {(Get-Content $_) | Out-String | Foreach-Object {$_.Replace('Status=ON','Status=OFF')} | Set-Content $_}"

lasse ich das über batch laufen kommt das:
Code:
  1. Get-ChildItem:Cannot find path 'D:\Tasks\ûpath' because it does not exist.
  2. At line:1char:14
  3. +Get-ChildItem<<<<ûpath ô\\AS_Server\Bu.txtö|Forea
  4. ch-Object{(Get-Content $_)|Out-String|Foreach-Object{$_.Replace('Status=ON','Status=OFF')}|Set-Content $_}
  5. +CategoryInfo:ObjectNotFound:(D:\Tasks\ûpath:String)[Get-ChildItem],ItemNotFoundException
  6. +FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
in der ps console geht es wenn ich "powershell -noprofile -command " weglasse. was ist läuft da schief?

Powershell Script läuft nicht immer...

$
0
0

Hi,

ich dreh noch durch:

Das unten stehende Script soll schlichtweg eine Mail senden wenn sich ein User anmeldet, Uhrzeit, Workstation und Benutzername sollen mitgeliefert werden.

Das ganze wird per GPO an Windows 7 Workstations ausgeliefert, jetzt das Problem:

Wenn ich das Script mittels GPO ausliefere, an die korrekte Gruppe Mitarbeiter, funktioniert es nicht,
wenn ich aber als angemeldeter User auf das Netlogon Share gehe, dort mittels rechter maustaste
das script oeffne und ausführe, dann gehts.
Jetzt wirds noch daemlicher. wenn ich das script lediglich doppelklicke als der gleiche user, dann gehts wieder nicht ?!?!?!?!

Hier das script. rette mich einer bevor ich durch drehe...

$subject = [Environment]::UserName.substring(1,1).toupper()+[Environment]::UserName.substring(2)+", "+[Environment]::UserName.substring(0,1).toupper()+" hat sich an "+[Environment]::MachineName+" eingeloggt"
$C10 = [char]10
$Zeit = Get-Date

$body = [Environment]::UserName+" hat sich soeben erfolgreich an "+[Environment]::MachineName+" eingeloggt."+$C10+$C10+$C10
$body=$body + 'Logon Server: '+$env:logonserver+$C10
$body=$body + 'Aktuelle Uhrzeit: '+$Zeit+$C10
Send-MailMessage -to "log@tld.de" -from "Anmeldung <no-reply@tld.de>" -Subject $subject -body $body -SmtpServer internal.msx.lan -port 10026

Aktivieren der "Send True Type as Bitmap" Option in (HP) Druckertreibern

$
0
0

Guten Morgen,

ich baue gerade an einem Script, welches automatisiert Drucker auf Grundlage einer csv-Datei installiert. Jetzt kriege ich eine wichtige Option nicht gesetzt.

Im Drucker > General > Preferences... > Advanced existiert eine Option "Printer Features: Send True Type as Bitmap" die wir auf "Enabled" setzen. Diese Option kann man leider nicht über die Registry ansprechen, und ansonsten gibt es PowerShell-intern keine Möglichkeit, diese Option direkt anzusprechen.

Habt ihr eine Idee wie das am besten umsetzen kann?

Vielen Dank

Gruß

Steffen

Bitweises Oder von Enum-Werten

$
0
0

Hallo!

Es ist mir nun gelungen,
aber vielleicht kann mir wer verraten,
ob man das auch kürzer schreiben kann:

[System.Int64]$BoldValue = [System.Drawing.FontStyle]::Bold
[System.Int64]$ActStylValue = $OKButton.Font.Style.Value
[System.Int64]$NewStylValue = $BoldValue -bor $ActStylValue
$BTNFont = New-Object System.Drawing.Font (
     $OKButton.Font.Name, $OKButton.Font.Size,
     $NewStylValue,    $OKButton.Font.Unit,
    $OKButton.Font.GdiCharSet, $OKButton.Font.GdiVerticalFont
    )
$OKButton.Font = $BTNFont


Ausgabe in Textdatei sollte nicht mehrzeilig sein

$
0
0

Hi zusammen,

Zuerst einmal möchte ich sagen, dass ich weiss, dass dieses Script weder professionell noch sonderlich schön geschrieben ist.
Ich bin ein absoluter Powershell-Beginner. Bitte verzeiht deshalb die unschöne Schreibweise.

Ich habe heute den Auftrag bekommen 1200 Logfiles(geben auskunft über fehlende Treiber) in ein Excel-File zu übertragen und in diesem anschliessend mit Diagrammen das ganze darzustellen. Sprich, welcher Treiber hat wie oft gefehlt etc.

Ich hab mir die Lösung so vorgestellt, dass ich die wichtigen Textstellen aus den .txt-Files auslese und in ein neues txt-file schreibe. Von die Daten in diesem möchte ich dann anschliessend von Excel aus importieren.

Ein Logfile besteht aus jeweils 11 Zeieln. Hier ein Bsp.

*******************************
Computer Details:

Manufacturer: Hewlett-Packard
Model: HP xw6600 Workstation

Hardware that's not working list

Service Tag: CZC83047TM

Description: PS/2 Compatible Mouse
Device ID: ACPI\PNP0F13\4&17AEE944&0
*******************************

Davon brauch ich die Zeilen 3,4,7,9 und 10.

$path = "\\sccm_sources\sccm_sources$\OSDErrorLogs\Missing_Drivers\2013\"
$counter = 0

$datas = @(Get-ChildItem "\\sccm_sources\sccm_sources$\OSDErrorLogs\Missing_Drivers\2013" *.txt -name) 

$arrLength = $datas.Count

$Manufacturer = (1..$arrLength)
$Model = (1..$arrLength)
$ServiceTag = (1..$arrLength)
$Description = (1..$arrLength)
$DeviceID = (1..$arrLength)
$sum = (1..$arrLength)



foreach ($element in $datas) {
    $pather = $path + $element
    $Manufacturer[$counter] = @(get-content $pather | Where-Object { $_ -like '*Manufacturer:*' })
    $Model[$counter] = @(get-content $pather | Where-Object { $_ -like '*Model:*' })
    $ServiceTag[$counter] = @(get-content $pather | Where-Object { $_ -like '*Service Tag:*' })
    $Description[$counter] = @(get-content $pather | Where-Object { $_ -like '*Description:*' })
    $DeviceID[$counter] = @(get-content $pather | Where-Object { $_ -like '*Device ID:*' })
    $sum[$counter] = $Manufacturer[$counter] + ";" + $Model[$counter] + ";" + $ServiceTag[$counter]  + ";" + $Description[$counter] + ";" + $DeviceID[$counter]
    $counter ++

}

Die Daten werden ausgelesen und in Arrays abegfüllt. Anschliessend möchte ich wie gesagt das ganze IN EINER ZEILE in eine neue Text-Datei schreiben.

Ich hab dies bis jetzt so versucht.

$sum[$counter] = $Manufacturer[$counter] + ";" + $Model[$counter] + ";" + $ServiceTag[$counter]  + ";" + $Description[$counter] + ";" + $DeviceID[$counter]

Die Semikolon sind zur vereinfachung des anschliessend Imports in Excel.

Die Ausgabe in die Text-Datei habe folgendermassen gelöst.

Add-Content C:\Users\KohlJ\Desktop\test.txt $sum[0] -encoding Unicode 

Dies ist nur zum Testen. Die Ausgabe wäre auch gleich in der Schleife, allerdings wären das jedesmal 1200 Einträge womit das Script noch länger dauern würde.

Leider erscheint der Text in der neuen Datei nun in Zeilen aufgespalten, sprich für jede Array-Variable und für jedes Semikolon wird eine neue Zeile genommen.

Ich muss das ganze allerdings auf einer Zeile haben :(

Ich hoffe ihr könnt mir helfen und danke schon mal für die Antworten :)

Prozentuale CPU Auslastung der einzelnen Prozesse ermitteln

$
0
0

Hallo,

gibt es mit Powershell eine Möglichkeit die prozentuale CPU Auslastung der einzelnen Prozesse wie Sie im Taskmanager dargestellt werden zu ermitteln? Mit get-process erhalte ich lediglich die CPU(s), mit dem WMI Object win32_perfformatteddata_perfproc_process erhalte ich insgesamt Werte von weiter über 100%... ist dies ein Problem mit Mutlicore Prozessoren? Müssen diese Werte dann durch die Anzahl der Kerne geteilt werden? Für einen Lösungsvorschlag oder Alternative Vorschläge wäre ich sehr dankbar.

Powershell Login Script

$
0
0

Hallo zusammen,

Ich beschäftige mich schon eine weile mit Powershell. Ich möchte unser Login Script von VBS auf PS1 umstellen.
Mir fehlt dabei nur noch ifmember Abfrage. Folgendes habe ich schon heraus gefunden.

Mit diesem Befehl kann ich bereits alle Member Gruppen des aktuell angemeldeten Users herauslesen.

Get-ADPrincipalGroupMembership $ENV:Username | select name

Leider bring ich es nicht fertig die Abfrage so fertig zu stellen, dass wenn der User ein Member von einer dieser ausgelesenen Gruppen ist,  ein entsprechendes Laufwerk zu verbinden.

Bei VBS sieht das so aus.

If IsMember("Abteilung") Then
net.MapNetworkDrive "F:"

Danke für eure Hilfe und Tips
Angelos

Objekt TabControl funktioniert im ISE, auf dem Zielsystem leider nicht

$
0
0

Guten Tag,

ich freunde mich gerade mit Powershell an und habe begonnen eine kleine GUI zu entwickeln.
Leider musste ich feststellen, dass ein Objekt (System.Windows.Forms.TabControl) in "Windows Powershell ISE" ohne weiteres funktioniert, versuche ich aber das Script auf dem selben Client oder auf einem Server aufzurufen, es dann leider nicht zwischen den einzelnen Tabs wechselt.

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") $objForm1 = New-Object System.Windows.Forms.Form $objTabControl1 = New-Object System.Windows.Forms.TabControl $objTabControl1.add_SelectedIndexChanged($objTabControl1_SelectedIndexChanged) $objTabPage1 = New-Object System.Windows.Forms.TabPage $objTabPage2 = New-Object System.Windows.Forms.TabPage $objLabel1 = New-Object System.Windows.Forms.Label $objLabel2 = New-Object System.Windows.Forms.Label $objForm1.Size = New-Object System.Drawing.Size(1200,755) $objForm1.StartPosition = "CenterScreen" $objForm1.text = "GUI 123" $objTabControl1.Size = New-Object System.Drawing.Size(1145,675) $objTabControl1.Location = New-Object System.Drawing.Size(20,20) $objTabPage1.Text = "XYZ" $objTabPage2.Text = "ZYX" $objLabel1.Location = New-Object System.Drawing.Size(40,110) $objLabel1.Size = New-Object System.Drawing.Size(400,30) $objLabel1.Text = "LABEL 1" $objLabel2.Location = New-Object System.Drawing.Size(40,110) $objLabel2.Size = New-Object System.Drawing.Size(400,30) $objLabel2.Text = " LABEL 2" $objTabControl1_SelectedIndexChanged= {

write-host DEBUG1

if($objTabControl1.SelectedTab -eq $objTabPage1) { $objLabel1.visible = $true $objLabel2.visible = $false } else { $objLabel1.visible = $false $objLabel2.visible = $true } } $objForm1.Controls.Add($objLabel1) $objForm1.Controls.Add($objLabel2) $objForm1.Controls.Add($objTabControl1) $objTabControl1.Controls.Add($objTabPage1) $objTabControl1.Controls.Add($objTabPage2)

Ich habe den Quelltext gekürzt, aber im großen und ganzen sollte irgendwo hier das Problem liegen.
Aufgefallen ist mir, dass wohl "$objTabControl1_SelectedIndexChanged" außerhalb der "Windows Powershell ISE" nicht aufgerufen wird. In der "Entwicklungsumgebung" (in der der Wechsel zwischen den Tabs auch problemlos funktioniert) bekomme ich "DEBUG1" ausgegeben, über die powershell.exe direkt aufgerufen erhalte ich keine Ausgabe.

Ich hoffe ich habe mir verständlich ausgedrückt und ggf kann mir ja jemand helfen.

Gruß ;)

Disable WPF Controls in Powershell

$
0
0

Die Dialoge sehen mit WPF besser aus,
beim Umstellen eines Dialoges fehlt mir jedoch die
Möglichkeit z.B. einen Button auf Disable zu setzen,
wenn der Context nicht passt.

Wie ist die neue Philosophie bei Dialogen,
wenn dies so schwer fällt,
oder geht es doch?

Ich verwende Powershell mit dem ShowUi Modul.

Danke für euren Rat

Erhy

Viewing all 2314 articles
Browse latest View live


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