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

Powershell Script trotz Installation nicht nutzbar?

$
0
0

Aus irgendeinem Grund habe ich Powershell scheinbar kaputt gemacht. 

Ich installiere ein Script per Powershell, kann dieses aber in der gleichen Shell anschließend nicht nutzen. 

PS C:\WINDOWS\system32> Install-Script -Name Get-WindowsAutoPilotInfo

Nicht vertrauenswürdiges Repository
Sie installieren die Skripts aus einem nicht vertrauenswürdigen Repository. Wenn Sie diesem Repository vertrauen, ändern Sie dessen InstallationPolicy-Wert, indem Sie das Set-PSRepository-Cmdlet
ausführen. Möchten Sie die Skripts von "PSGallery" wirklich installieren?
[J] Ja  [A] Ja, alle  [N] Nein  [K] Nein, keine  [H] Anhalten  [?] Hilfe (Standard ist "N"): a

PS C:\WINDOWS\system32> Get-WindowsAutoPilotInfo
Get-WindowsAutoPilotInfo : Die Benennung "Get-WindowsAutoPilotInfo" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die
Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1
+ Get-WindowsAutoPilotInfo+ ~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo          : ObjectNotFound: (Get-WindowsAutoPilotInfo:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException

PS C:\WINDOWS\system32>

Auch ein Uninstall-Script und anschließendes Neuinstallieren brachte keine Besserung. 

Irgendeine Idee wie ich das Script wieder zum laufen bekomme?

Danke


Dateinamen suchen anhand einer Liste mit Teile des Dateinamens um diese zu kopieren

$
0
0

Hallo,

ich wollte gerade ein kleines Script basteln, welche Dateien nach Namen sucht anhand einer vorgegebenen Textdatei oder CSV.

In der Liste sind einzelne Dateinamen, allerdings nicht der komplette Name, sondern Teile des Dateinamens.

Nur funktioniert das nicht so wie ich mir das gedacht habe. (das Copy Item ist noch nicht angepasst)

$source = 'X:\quelle'
$destination = 'X:\ziel'
$list = get-content 'X:\Test\test.txt'

$content=Get-content X:\test.txt | Foreach-Object {$_} 

foreach($item in (Get-ChildItem -Recurse -Path $source | Where-Object {$_.Name -like $content}))
{
   copy-item -Path $item -Destination $destination 
}


Wert eines Attributs auslesen

$
0
0

Hallo,

gibt es in PowerShell 5 eine Möglichkeit, den Wert eines Attributes eines Objekts auszulesen? Ich möchte die Anzahl der aktuell verbundenen VPN-Nutzer des Routing and Remote Access auslesen. Dazu gibt es die "TotalVpnConnections" mit dem Befehl"Get-RemoteAccessConnectionStatisticsSummary". Kann ich mir nur deren numerischen Wert ausgeben lassen?

Viele Grüße

Statistik eines Servers von einem anderen Server aus auslesen

$
0
0

Hallo,

ich möchte gerne die Anzahl der aktuellen VPN-Verbindungen am Routing and Remote Access Service auslesen. Auf dem Server selbst funktioniert das Ganze auch, jetzt möchte ich sie allerdings auch zusätzlich noch auf einem anderen Server von diesem aus auslesen. Dabei bekomme ich folgenden Fehler:

Get-RemoteAccessConnectionStatisticsSummary : The operation cannot be completed due to a network error. Verify connectivity 
to domain controllers, and to all required servers. Ensure that services are running as expected.
At line:1 char:1+ Get-RemoteAccessConnectionStatisticsSummary -ComputerName xxx.xxx.xxx.xxx ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo          : NotSpecified: (PS_RemoteAccess...atisticsSummary:root/Microsoft/...atisticsSummary) [Get-Remo 
   teAcces...atisticsSummary], CimException+ FullyQualifiedErrorId : HRESULT 80070035,Get-RemoteAccessConnectionStatisticsSummary

Ein Netzwerkproblem liegt nicht vor, die Server erreichen sich untereinander.

Muss ich eine Richtlinie anpassen?

WMI switch Disable/Enable Airplane mode

$
0
0

Guten Abend,

Bitte, ich möchte gerne das "Airplane mode" benützen.

Konnte aber nichts finden.

Aber für den Wi-Fi (Wireless Mode) als Web-Zugang benütze ich nur eine Kable-Verbindung. Der " $_.name " Name fehlt mir.

switch mode Disable:
get-wmiobject -class win32_networkadapter -namespace root\CIMV2 | where-object {$_.Name -match “Wireless”} | % {$_.Disable()} 

switch mode Enable:
get-wmiobject -class win32_networkadapter -namespace root\CIMV2 | where-object {$_.Name -match “Wireless”} | % {$_.Enable()}

Danke für Ihre Hilfe

@r

Auslesen der Umgebung Windows/Linux

$
0
0

Hallo,

ich erstelle gerade ein Script, was sowohl auf Linux wie auf Windows laufen soll.
Leider finde ich keinen Befehl, um auf Betriebssystemebene zu unterscheiden, wo ich mich befinde.

Der Befehl " Get-ComputerInfo -Property OS*" geht leider nicht auf Linuxebene.

Hat jemand einen Tipp?

Viele Grüße,

mhbosch

Umlaute in Powershell für linux

$
0
0

Hallo,

ich mir ein Script geschrieben, welches auf meinen Ubuntu Server ein externes Programm aufruft und verschiedene Dateien aufruft.

Wenn ich das Programm als Script ganz normal aufrufe, habe ich keine Probleme.

Wenn ich es allerdings in einem Crontab aufrufe, kommt es zum Fehler bei den deutschen Umlauten. Mir ist da nicht ganz klar, worin der Unterschied bestehen kann, wenn ich das Script per Linecommand aufrufe oder als Cronjob.

Weiß jemand, woran das liegen kann?

Beste Grüße,

Michael Bosch

CSV Nach Datum suchen und um 10 Tage erhöhen

$
0
0

Hallo Powershell Experten :)

Ich habe folgendes Problem:

Ich habe eine CSV Datei, dessen Datum ich verändern muss. Sprich aus dem 16.03.2020 soll 26.03 2020 werden bzw. aus zB dem 29.03.2020 soll dementsprechend auch der 07.04.2020 werden. Es reicht also nicht, einfach nur den Tag um die Zahl 10 zu erhöhen..

Habe gerade keine Ahnung wie ich das realisieren soll, und mit RegEx bin ich auch nicht wirklich Fit. Ich hoffe sehr, dass ihr mir da weiter helfen könnt :)

Hier auch ein Ausschnitt aus der CSV:

"ArtikelNr";"Bestand";"Lieferzeit";"Bestandsmenge";"ETA";"090509";"0";"";"";;"090510";"0";"";"";;"095011";"5";"";"";;"CCWAV01";"5";"";"";;"CCWAV09";"5";"";"";;"CHSAI04";"5";"";"";05.02.2020;"CHSAI04F";"0";"";"";;"CHSAI06";"5";"";"";;"CHSAI07";"5";"";"";05.02.2020;"CHSAI07F";"0";"";"";;"CHSAI09";"0";"";"";;"CHSAI11";"0";"";"";;"CHSAIL";"0";"";"";;"CHSAIP";"0";"";"";;"CHSAIPBL";"0";"";"";;"CHSAIS";"0";"";"";;"CHVAL01";"5";"";"";05.02.2020;"CHVAL03";"5";"";"";;"CHVAL05";"0";"";"";;"CHVAL06";"5";"";"";05.02.2020;"CHVAL07";"5";"";"";05.02.2020;"CHVAL08";"5";"";"";05.02.2020;"CHVAL11";"0";"";"";;"CHVAL12";"5";"";"";;"CHVALC";"5";"";"";;"CPSB-002";"5";"";"";;"CPSB-CO2-001";"5";"";"";;"D5-1124-OD";"5";"";"";;"D5-1125-MC";"5";"";"";;"D5-1319";"0";"";"";;"D5-1334-B";"0";"";"";;

Wie ihr sehen könnt, ist auch nicht immer ein Datum vorhanden...

Es wäre super, wenn ihr mir eine Lösung schreiben könntet und vllt kurz erklären könntet, was da vorsich geht. Vllt stelle ich es mir ja komplizierter vor als es in Wahrheit ist ;)

Vielen Herzlichen Dank!


Daniel


Add-PSSnapin Microsoft.sharepoint.powershell - Fehler/kann nicht ausgeführt werden

$
0
0

Hallo,

ich habe seit einigen Tagen das Problem, dass ich beim Befehl: 

Add-PSSnapin Microsoft.sharepoint.powershell

folgenden Fehler angezeigt bekomme: 

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

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32> Add-PSSnapin Microsoft.sharepoint.powershell
Add-PSSnapin : The Windows PowerShell snap-in 'Microsoft.sharepoint.powershell' is not installed on this computer.
At line:1 char:1
+ Add-PSSnapin Microsoft.sharepoint.powershell
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (Microsoft.sharepoint.powershell:String) [Add-PSSnapin], PSArgumentExce
   ption
    + FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand

PS C:\WINDOWS\system32>

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

Gibt es hier einen Möglichkeit, diesen Fehler zu beheben? Auf dem anderen Server funktioniert dies einwandfrei. 

Daten zum Server:

OS: Windows Server 2016 Standard

Share Point 2016

Freue mich auf eure Antwort und Hilfe! 


invoke-command, parameter member kann nicht überprüft werden.

$
0
0
Invoke-Command -ComputerName $Computer -Scriptblock {Add-LocalGroupMember -Group "Remotedesktopbenutzer"  -member $PersNr} 

beide Variable sind ganz normal befüllt?

Das Argument für den Parameter "Member" kann nicht überprüft werden. Das Argument ist NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder leer ist, und führen Sie den Befehl
erneut aus.
    + CategoryInfo          : InvalidData: (:) [Add-LocalGroupMember], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.AddLocalGroupMemberCommand
    + PSComputerName        : pc100

Ausnahme beim Aufrufen von "Add" mit 1 Argument(en):  "Der angegebene Kontoname ist bereits Mitglied der Gruppe.

    Invoke-Command -ComputerName $Computer -Scriptblock {Add-LocalGroupMember -Group "Remotedesktopbenutzer"  -member "$PersNr"} 


Das Mitglied VORDEFINIERT\ wurde in der Gruppe Remotedesktopbenutzer nicht gefunden.
    + CategoryInfo          : ObjectNotFound: (VORDEFINIERT\:String) [Add-LocalGroupMember], MemberNotFoundException
    + FullyQualifiedErrorId : MemberNotFound,Microsoft.PowerShell.Commands.AddLocalGroupMemberCommand

  geht auch nicht

    Invoke-Command -Scriptblock {net localgroup "Remotedesktopbenutzer" /add "$PersNr"} -Computer "$Computer" 

Die Gruppe existiert bereits.
    + CategoryInfo          : NotSpecified: (Die Gruppe existiert bereits.:String) [], RemoteException

viele eigenartige Fehlermeldungen


Chris


Get number of connections through Remotedesktopgatewayserver via powershell

$
0
0

Hello,

thanks to Covid, my Terminalgatewayservers are heavily used and i would like to get number of connections into my Zabbix system.

Therefore if first need to get those number.

In the Terminalgatewayserver-Manager the connections are listed. But can i get that information via Powershell also?

I did not found a solution till now. Seems like powershell does support Terminalserver andRemote Desktop Session Host, but not the Gatwqay-Server allone?

We doo not have a Remote Desktop Session Host or anything related, we just use a Gateway to access our local Windows PCs.

 How to get the number of the RDP-Gateway connections?

Thank you

To get it clear:

Installed Windows Feature

[X] Remotedesktopdienste                                Remote-Desktop-Services        Installed
    [X] Remotedesktopgateway                            RDS-Gateway                    Installed
    [ ] Remotedesktoplizenzierung                       RDS-Licensing                  Available
    [ ] Remotedesktop-Sitzungshost                      RDS-RD-Server                  Available
    [ ] Remotedesktop-Verbindungsbroker                 RDS-Connection-Broker          Available
    [ ] Remotedesktop-Virtualisierungshost              RDS-Virtualization             Available

PS U:\> Get-Service TSGateway

Status   Name               DisplayName
------   ----               -----------
Running  TSGateway          Remotedesktopgateway

Benutzerprofile in Dropdown füllen

$
0
0

Hallo zusammen

Ich würde gerne ein kleines Skript für USMT verwenden, bei dem man den zu migrierenden Benutzer auswählen kann.

Dazu möchte ich die aktuellen Profile auslesen aus c:\users (ich nehme einfach die Ordnernamen) und diese nachher als Variable ans Scanstate weitergeben.

Nun habe ich ein Skript, welches eine Auswahlbox erzeugt & die Verzeichnisnamen liest.

Allerdings weiss ich nicht, wie ich die Verzeichnisnamen als Variablen in die Dropdown-Liste übertragen kann.

Kann mir jemand helfen?

Anbei der Code, inmitten der gestrichelten Linien ist der Verzeichnisordnerteil, bei dem ich mir nicht sicher bin...

Vielen Dank.

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$form = New-Object System.Windows.Forms.Form
$form.Text = 'Select a User'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'

$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(75,120)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)

$cancelButton = New-Object System.Windows.Forms.Button
$cancelButton.Location = New-Object System.Drawing.Point(150,120)
$cancelButton.Size = New-Object System.Drawing.Size(75,23)
$cancelButton.Text = 'Cancel'
$cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)

$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Benutzerauswahl Migration:'
$form.Controls.Add($label)

$listBox = New-Object System.Windows.Forms.ListBox
$listBox.Location = New-Object System.Drawing.Point(10,40)
$listBox.Size = New-Object System.Drawing.Size(260,20)
$listBox.Height = 80

#------------------------------------------------------
##C:\users auslesen
#[String] $folder="C:\users";
#Get-ChildItem -Path $folder | SELECT Name | Format-Table #-AutoSize;

#foreach ($name in $folder) {
#	Write-Host $user1+i
#------------------------------------------------------

[void] $listBox.Items.Add($user1)
[void] $listBox.Items.Add($user2)
[void] $listBox.Items.Add($user3)
[void] $listBox.Items.Add($user4)
[void] $listBox.Items.Add($user5)
[void] $listBox.Items.Add($user6)
[void] $listBox.Items.Add($user7)

$form.Controls.Add($listBox)

$form.Topmost = $true

$result = $form.ShowDialog()

if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
    $x = $listBox.SelectedItem
    $x
}

Powershell System.Windows.Forms Button mit einer Grafik "übermalen"

$
0
0

Moin zusammen,

wie der Titel schon sagt, möchte ich gerne wissen, wie man mit Powershell quasi einen eigenen Button aus einer Grafik erzeugt.

Leider habe ich dazu bisher nur Beispiele in C# gefunden, nicht jedoch wie man das Ganze in Powershell bewerkstelligen kann.

Gruß Thomas

Powershell als Admin starten....

$
0
0

Hi,
ich möchte per Batch Datei ein PS Skript per Administrator ausführen.

PowerShell.exe -command "& 'C:\Exchange Clean Logs\CleanLogs(AccessDeniedFix).PS1'

So macht er mir das aber nicht als Administrator.

Wie bekomme ich das hin?

Danke und Gruß

Dennis

Verständnisfrage, PS Code bei externer Firma ausführen

$
0
0

moin,

wie würdet ihr das machen wenn man bei externen Firmen routine arbeiten ausführen muss und ihr ihnen den Code schicken müsst.

zb. bewährt sind ja Text oder CSV Daten mit den Rohdaten. Aber da müsste man zwei Dateien schicken und der User muss sie beide in ein richtiges Verzeichnis stellen und und und.

#userid, pcname, telefonnr
#abc,ws1,+49123456789
#def,ws2,+49123456780
#ghi,ws3,+49123456781

....
$Users = Import-Csv C:\temp\userinfo.txt
foreach($User in $Users){
    Add-ADGroupMember $Gruppenname -Members $User.Userid

....

oder

man bringt irgendwie die Rohdaten gleich im Script unter, wäre dann wenig Fehleranfällig aber aufgrund Array auch schwer lesbar, keine Überschrift wie man das Feld anspricht usw?

$psarray = @(
 ('Line' ,'One' ),
 ('Line' ,'Two')
)


....

foreach($ar $psarray){
    Add-ADGroupMember $Gruppenname -Members $ar

....

oder

man wiederholt einfach die ausführbaren Zeilen samt Rohdaten? Gut lesbar und geht überall.

Nachteil man muss sie vorher meist mit Excel, UltraEdit oder Notepad+ zusammenbasteln

 Add-ADGroupMember "Remote Desktop User" -Members "abc"
 Add-ADGroupMember "Remote Desktop User" -Members "def"
 Add-ADGroupMember "Remote Desktop User" -Members "ghi"
 Add-ADGroupMember "Remote Desktop User" -Members "jkl"
was meint ihr.


Chris


Powershell: Auswertung mit mehreren Feldern aus unterschiedlichen cmdlet

$
0
0

Hallo,

ich brauche ein Auswertung aller meiner Freigaben. Mit folgendem Befehl bekomme ich "fast" genau das was ich brauche:

Get-SmbShare -name * | sort name | Get-SmbShareAccess | ft Name, AccountName, AccessRight, Path

Mein Problem ist das Feld "Path", dieses gibt es im cmdlet: Get-SmbShareAccess nicht, sondern kommt im cmdlet: Get-SmbShare vor.

Wie kann ich einen Feldinhalt über mehrere cmdlet übertragen?

Danke

Variablen im Array haben alle den gleichen Wert

$
0
0

Moin zusammen,

ich bastle an einem Script, das eine CSV einliest und in einer Spalte per RegEx fünfstellige Nummern sucht. Diese kommen in die Variable $Mandantennummern. 

Der Inhalt sieht dann z.B. so aus:

10001     
10002      
10003   

Mit einer ForEach Schleife will ich alle drei Einträge durchgehen und am Ende als neue Zeilen einfügen.
Weil mit der Schleife alle Einträge nur den Inhalt der jeweils letzten Variable hatten wollte ich es einfach per Hand eintippen. Das sieht dann so aus:

         $ContactsAddNew = $null
            $ContactsAddNew = New-Object System.Collections.ArrayList  
            $i=0

            $ContactsAddNew.Add($contact)
            $ContactsAddNew[0].'Benutzer 19' = $mandantennummern[0]
            $ContactsAddNew.Add($contact)
            $ContactsAddNew[1].'Benutzer 19' = $mandantennummern[1]
            $ContactsAddNew.Add($contact)
            $ContactsAddNew[2].'Benutzer 19' = $mandantennummern[2]


Wobei $Contact der Inhalt der kompletten Zeile ist. 

Das Ergebnis sieht dann aber so aus:

Angezeigter Name  Benutzer 19
----------------  -----------
Kunde A 10003     
Kunde A 10003      
Kunde A 10003   

"Benutzer 19" klingt blöd, aber das Feld kommt so aus einer Datenbank...

Kann mir jemand weiterhelfen und vielleicht sagen, was ich da falsch gemacht habe? Kann ich den Wert irgendwie fest eintragen ohne, dass die Variable überschrieben wird?

Danke & viele Grüße
Eike

Job oder Prozess zu schnell für canceling?

$
0
0

Hallo zusammen,

ich komme mal wieder nicht weiter hier.

Ich habe eine GUI gebaut, die Mittels robocopy die Dateien eines Verzeichnisses einzeln kopieren soll.

Skriptblock für den Job und der Aufruf des Jobs sieht wie folgt aus:

foreach ($script:file_temp in $script:file_array){ ### status output files $LabelStatus1.Text = "$script:file_temp" ### copyjobScript $script:copyjobScript = { Param ( $script:Source = $script:src_dir_path, $script:Destination = $script:dst_dir_path, $script:File = $script:file_temp, $script:log = $script:robolog_backup ) Write-Host "Source: $script:Source" Write-Host "Destination: $script:Destination" Write-Host "File: $script:File" # Write-Host "robolog: $script:log" ### copy files per directory # Write-Host "robocopy $script:Source $script:Destination $script:File /e /mir /r:3 /w:5 /Log+:$script:log" robocopy "$script:Source" "$script:Destination" "$script:File" /e /mir /r:3 /w:5 /l /Log+:$script:log

Get-Process robocopy } ### starte copy job $script:copyjob = Start-Job -Name CopyJob -ScriptBlock $script:copyjobScript -ArgumentList $script:src_dir_path,$script:dst_dir_path,$script:file_temp,$script:robolog_backup Get-Job | Receive-Job # Get-Process robocopy ### wait for the end of the job, but further react to events $running = @(Get-Job | Where-Object { $_.State -eq 'Running' }) if ($running.Count -le 1) { Do {[System.Windows.Forms.Application]::DoEvents()} Until ($script:copyjob.State -ne "Running") }else{ $running | Wait-Job }

Ich habe in der GUI einen Cancel-Button, der den Kopiervorgang nach Wunsch unterbrechen/abbrechen soll (Get Job | Stop-Job). Das funktioniert aber irgendwie nicht. Ich habe bereits eine GUI gebaut, bei der robocopy Verzeichnisweise kopiert. Dort funktioniert das Unterbrechen des Kopiervorgangs.

Ist der Job oder der robocopy Prozess jetzt zu schnell, um Ihn zu unterbrechen oder irgendwie abzugreifen? Auch wenn ich es selber nicht glauben kann, dass es damit etwas zu tun hat, aber eine andere Erkärung habe ich für mich gerade nicht parat.

Die Dateien in den Verzeichnissen sind überwiegend kleinere Dateien, ein Kopiervorgang also schnell erledigt sein dürfte pro Datei.

Ich habe im Skriptblock, als auch danach mal ein Get-Process eingebaut, um den robocopy Prozess eventuell abgreifen zukönnen, um robocopy vielleicht einfach zu "killen". Als Rückmeldung bekomme ich aber nur, dass der Prozess robocopy nicht gefunden werden kann.

Jemand eine Idee oder einen Tipp, wie ich entweder den Kopiervorgang unterbreche, in dem ich die Jobs lösche/kille oder den robocopy Prozess kille? Während des erstellens des Threads hier, kam mir gerade noch die Idee, eventuell irgendwie die foreach ($script:file_temp in $script:file_array){ zu unterbrechen, auch wenn ich gerade noch nicht genau weiss wie.

Vielleicht sehe ich auch gerade vor lauter Bäumen den Wald nicht mehr. Wäre auch nicht das erste Mal.

Wäre für jeden Tipp, Denkanstoß und Rat dankbar.

Vielen Dank.

Gruß

Christian

RegEx, match

$
0
0

moin,

ich möchte gerne nur die IP Adresse aus nachfolgenden Objekt (eventlog) auslesen

Message      : Remotedesktopdienste: Die Benutzerauthentifizierung war erfolgreich:

               Benutzer: xyz
               Domäne: firma
               Quellnetzwerkadresse: 10.10.1.100.

der Benutzername funktioniert

bei IP wird bei matches[1] nichts zurückgeliefert

$Benutzer = 'Benutzer: (\w{1,})'
if ($Event.Message -match $Benutzer){
write-host $Matches[1] -ForegroundColor Green
}


$Quellnetzwerkadresse = 'Quellnetzwerkadresse: (\.*)'
if ($Event.Message -match $Quellnetzwerkadresse){
write-host $Matches[1] -ForegroundColor Green
}

               

Chris

Remote Powershell script only works when executed on a DC

$
0
0

Hi all,

I am not a Powershell expert but need to use some scripts in an automation project. My problem:

The environment consists of 3 Servers:

DC-01: Windows 2016, Domain Controller

DB-01: Windows 2016, SQL-Server

ISM: Windows 2012R2, runs our ITSM Software

I have a very simple script:

import-module ActiveDirectory

New-ADGroup -GroupScopeDomainLocal-GroupCategorySecurity-NameTestGroup 

WindowsRM is configured on all 3 servers, which are part of the same Domain (called LAB) I have a user called svc_ism which is a Domain User and Member of Local Administrator Groups on all 3 servers.

When I start the script local on DB-01, everything works fine.

When I start the script from ISM with "winrs -r:DB-01 powershelgl c:\scripts\hw.ps1" I get

New-ADGroup : Unable to contact the server. This may be because this server does not exist, it is currently down, or it does not have the Active Directory Web Services running.
At C:\scripts\hw.ps1:3 char:1
+ New-ADGroup -GroupScope DomainLocal -GroupCategory Security -Name Tes ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [New-ADGroup], ADServerDownException
    + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.NewADGroup

What can I do?

Thanks,Joern

Viewing all 2314 articles
Browse latest View live


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