WinFuture-Forum.de: Powershell: Domänen-Namen ermitteln und als Variable setzen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Powershell: Domänen-Namen ermitteln und als Variable setzen


#1 Mitglied ist offline   ibicis 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 21. Juli 16
  • Reputation: 0

geschrieben 21. Juli 2016 - 11:42

Hallo und viele Grüße von einem Neuen,

mein Problem in PS (ich habe diesbzgl. relativ wenig Kompetenz): Ich möchte in einem AD eine OU erzeugen, die denselben Namen hat wie der Domänen-Name. Den Domänen-Namen kann ich ermitteln mit
Get-ADDomain | select Name | Format-List

Die Ausgabe lautet dann
Name : my-domain

Wie bringe ich PS dazu, nur "my-domain" auszugeben und "Name :" weg zu kürzen? Ich möchte die Ausgabe gleich als Variable setzen, sodass "my-domain" als Grundlage für die Benennung von OUs innerhalb von "my-domain.local" genutzt werden kann. Ich stelle mir das so vor:
$domaene = Ergebnis der Abfrage "Get-ADDomain | select Name | Format-List" ohne Suffix
New-ADOrganizationalUnit -Name $domaene ...


Auf meiner Suche fand ich ein gutes Bsp. eines anderen Users, der einen String kürzen wollte und über dieses Bsp. zum Ziel kam:
$Test = "Das_ist_ein3456666komischer Text"
$neu = $test.substring(13,3)
write-host $neu


Ich kriege das Bsp. aber leider nicht verwurstet und bekomme stets Syntaxfehler. Kann mir bitte jemand mit einem Syntax-Bsp. helfen? Vielen Dank vorab.

MfG ibicis
0

Anzeige



#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 21. Juli 2016 - 11:49

Zuallererstmal: PS ist objektorientiert. Laß den ganzen Kram mit Format-* weg, der ist bestenfalls noch für die Ausgabe. NICHT für intern.

Wenn Du nur den Namen haben willst:

$dnsDomainName = (Get-AdDomain).Name



Wenn Du mehr brauchst, stattdessen Get-AdDomain in eine Variable stecken und dann per $varName.Name auf den Namen zugreifen.

In etwa so sieht das dann aus:
PS C:\> Get-Host


Name             : ConsoleHost
Version          : 5.0.10586.494
InstanceId       : 9b0603ef-0ee9-42bc-a5a0-5ee4b78b9a76
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : de-DE
CurrentUICulture : de-DE
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace



PS C:\> (Get-Host).Version

Major  Minor  Build  Revision
-----  -----  -----  --------
5      0      10586  494


PS C:\> (Get-Host).Version.Major
5


Dieser Beitrag wurde von RalphS bearbeitet: 21. Juli 2016 - 11:51

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   ibicis 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 21. Juli 16
  • Reputation: 0

geschrieben 21. Juli 2016 - 14:25

Hallo,

vielen Dank, hat geklappt! Aktuell sieht das PS-Script so aus:
$domaene_dn = (Get-AdDomain).DistinguishedName
$domaene = (Get-AdDomain).Name
New-ADOrganizationalUnit $domaene -path $domaene_dn
# entfernt Löschschutz von OU
Get-ADobject -Identity “OU=$domaene,$domaene_dn” | Set-ADobject -ProtectedFromAccidentalDeletion $false



MfG ibicis
0

Thema verteilen:


Seite 1 von 1

2 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 2, unsichtbare Mitglieder: 0