Flag PXE bei Computerobjekten sezten

Moderator: moderators

Post Reply
IronStorm
Posts: 72
Joined: 19. Jun 2018, 08:19
Contact:

Flag PXE bei Computerobjekten sezten

Post by IronStorm » 08. Aug 2023, 16:46

Hallo,
ich würde gerne via Powershell SDK das Flag "PXE fähig" für mehrere Rechner setzen.
Image

kann mir einer verraten wie der Command dafür ist??
Ich habe leider in der Doku dafür nichts gefunden.

Vielen Dank und viele Grüße
IronStorm

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7969
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Flag PXE bei Computerobjekten sezten

Post by Hendrik_Ambrosius » 10. Aug 2023, 09:46

Beispielscript (die letzte Zeile ist die eigentliche Aktivierung):

param([string]$HostName,
[string]$domain,
[string]$mac,
[guid]$groupID)

$HostName="testc2"
$domain="pso"
$mac="123457123499"
$groupID="867da725-435e-4eff-b6f0-bb04ded5f050"
# Connect to Server
$Server=Open-Matrix42ServiceConnection -ServerName APPSRV02 -Port 9200 -UserName sa -Password Matrix42
# Create a new computer
IF($Server.Computers | WHERE{$_.HostName -eq $HostName})
{$computer=$Server.Computers | WHERE{$_.HostName -eq $HostName}}
else
{$computer = New-EmpirumComputer -Server $server -HostName $HostName -DomainName $domain -PhysicalHostId $mac -IsDomainMember $true}

# Search for the Group
Invoke-EmpirumComputerActivation -Server $Server -Computer $computer -Flags PXE
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

munzur
Posts: 262
Joined: 23. Jun 2020, 19:26
Contact:

Re: Flag PXE bei Computerobjekten sezten

Post by munzur » 10. Aug 2023, 10:21

Durch die PXE-Aktivierung, wird der Flag in den Computereigenschaften aber nicht gesetzt, oder?

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7969
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Flag PXE bei Computerobjekten sezten

Post by Hendrik_Ambrosius » 10. Aug 2023, 10:24

Ah, OK - richtig. Hatte ich falsch verstanden.
Werde noch mal gucken, aber dafür habe ich leider glaube ich kein Script.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7969
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Flag PXE bei Computerobjekten sezten

Post by Hendrik_Ambrosius » 10. Aug 2023, 10:32

Habe doch noch was gefunden, geht via IsPxe:

$computer=New-EmpirumComputer -Name $ComputerName -DomainName M42 -MacAddress $mac.Replace(":","").ToUpper() -IsDomainMember $true -IsPxe $true -Session $session
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

munzur
Posts: 262
Joined: 23. Jun 2020, 19:26
Contact:

Re: Flag PXE bei Computerobjekten sezten

Post by munzur » 10. Aug 2023, 10:57

Das funktioniert aber nur beim Anlegen eines neuen Rechners. Bei Bestandrechnern wird das vermutlich nur über die DB funktionieren. Ich hatte vom Support mal ein SQL Skript bekommen, weiß nur nicht, ob man es hier im Forum veröffentlichen darf. :roll:

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7969
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Flag PXE bei Computerobjekten sezten

Post by Hendrik_Ambrosius » 10. Aug 2023, 11:01

Wenn das mit dem SQL-Script hilft können Sie es gern hier veröffentlichen.
Ist aber dann nicht via SDK...
Vielleicht mal über Set-EmpirumProperty probieren mit IsPXE?
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

munzur
Posts: 262
Joined: 23. Jun 2020, 19:26
Contact:

Re: Flag PXE bei Computerobjekten sezten

Post by munzur » 10. Aug 2023, 11:21

/***********************************************************************
* DESCRIPTION : Creates a record in the table 'Dhcp_Entries' for all clients
* having a macaddress and no PXE flag
***********************************************************************/
DECLARE @ClientID int
DECLARE @MACAddress CHAR(12)
DECLARE @UUID uniqueidentifier
DECLARE @IPAddress varchar(255)
DECLARE @SubnetMask varchar(255)
DECLARE @StandardGateway varchar(255)
DECLARE @DNSServer varchar(255)
DECLARE @Name varchar(50)
DECLARE @PXEID int
--
-- Create missing records in Dhcp_Entries
DECLARE PXE_Cursor CURSOR FOR
SELECT Client_id, MACAddress, UUID, IPAddress, SubnetMask, StandardGateway, DNSServer, [name]
FROM Clients
WHERE LEN(MACAddress) BETWEEN 8 AND 12 AND Client_id NOT IN (SELECT Client_id FROM Dhcp_Entries)
AND MACAddress NOT IN (SELECT macaddress FROM clients WHERE LEN(macaddress) = 12 GROUP BY macaddress HAVING (COUNT(macaddress)) > 1)
AND [name] NOT IN (SELECT [name] FROM clients GROUP BY [name] HAVING (COUNT([name])) > 1)
AND UUID NOT IN (SELECT UUID FROM clients GROUP BY UUID HAVING (COUNT(UUID)) > 1)
AND MACAddress NOT IN (SELECT haddress FROM Dhcp_Entries)
AND [name] NOT IN (SELECT info FROM Dhcp_Entries)
AND UUID NOT IN (SELECT UUID FROM Dhcp_Entries)
--
OPEN PXE_Cursor
FETCH NEXT FROM PXE_Cursor INTO @ClientID, @MACAddress, @UUID, @IPAddress, @SubnetMask, @StandardGateway, @DNSServer, @Name
--
WHILE @@FETCH_STATUS = 0
BEGIN
IF CHARINDEX(',', @StandardGateway) > 0
SET @StandardGateway = Substring(@StandardGateway, 1, CHARINDEX(',', @StandardGateway) - 1);
IF CHARINDEX(',', @DNSServer) > 0
SET @DNSServer = Substring(@DNSServer, 1, CHARINDEX(',', @DNSServer) - 1);
--
INSERT INTO Dhcp_Entries (bootinfo, haddress, ipaddress, netmask, gateway, dns, timelease, info, UUID, Client_id)
VALUES (2, @MACAddress, dbo.fnc_GetFirstIP(@IPAddress), dbo.fnc_GetFirstIP(@SubnetMask), @StandardGateway, @DNSServer, 1000, @Name, @UUID, @ClientID)
SELECT @PXEID = SCOPE_IDENTITY()
UPDATE Clients SET pxe_id = @PXEID WHERE client_id = @ClientID
--PRINT @ClientID
--
FETCH NEXT FROM PXE_Cursor INTO @ClientID, @MACAddress, @UUID, @IPAddress, @SubnetMask, @StandardGateway, @DNSServer, @Name
END
CLOSE PXE_Cursor
DEALLOCATE PXE_Cursor;

-- Set the id of matching Dhcp_Entries to the Clients table
UPDATE Clients SET pxe_id = (SELECT de.id FROM Dhcp_Entries de WHERE de.haddress = MACAddress AND de.UUID = UUID)
WHERE pxe_id NOT IN (SELECT id FROM Dhcp_Entries)


#####################################
Hier wird allerdings für jeden Client das Flag gesetzt.

IronStorm
Posts: 72
Joined: 19. Jun 2018, 08:19
Contact:

Re: Flag PXE bei Computerobjekten sezten

Post by IronStorm » 10. Aug 2023, 16:48

munzur wrote: 10. Aug 2023, 11:21 /***********************************************************************
* DESCRIPTION : Creates a record in the table 'Dhcp_Entries' for all clients
* having a macaddress and no PXE flag
***********************************************************************/
DECLARE @ClientID int
DECLARE @MACAddress CHAR(12)
DECLARE @UUID uniqueidentifier
DECLARE @IPAddress varchar(255)
DECLARE @SubnetMask varchar(255)
DECLARE @StandardGateway varchar(255)
DECLARE @DNSServer varchar(255)
DECLARE @Name varchar(50)
DECLARE @PXEID int
--
-- Create missing records in Dhcp_Entries
DECLARE PXE_Cursor CURSOR FOR
SELECT Client_id, MACAddress, UUID, IPAddress, SubnetMask, StandardGateway, DNSServer, [name]
FROM Clients
WHERE LEN(MACAddress) BETWEEN 8 AND 12 AND Client_id NOT IN (SELECT Client_id FROM Dhcp_Entries)
AND MACAddress NOT IN (SELECT macaddress FROM clients WHERE LEN(macaddress) = 12 GROUP BY macaddress HAVING (COUNT(macaddress)) > 1)
AND [name] NOT IN (SELECT [name] FROM clients GROUP BY [name] HAVING (COUNT([name])) > 1)
AND UUID NOT IN (SELECT UUID FROM clients GROUP BY UUID HAVING (COUNT(UUID)) > 1)
AND MACAddress NOT IN (SELECT haddress FROM Dhcp_Entries)
AND [name] NOT IN (SELECT info FROM Dhcp_Entries)
AND UUID NOT IN (SELECT UUID FROM Dhcp_Entries)
--
OPEN PXE_Cursor
FETCH NEXT FROM PXE_Cursor INTO @ClientID, @MACAddress, @UUID, @IPAddress, @SubnetMask, @StandardGateway, @DNSServer, @Name
--
WHILE @@FETCH_STATUS = 0
BEGIN
IF CHARINDEX(',', @StandardGateway) > 0
SET @StandardGateway = Substring(@StandardGateway, 1, CHARINDEX(',', @StandardGateway) - 1);
IF CHARINDEX(',', @DNSServer) > 0
SET @DNSServer = Substring(@DNSServer, 1, CHARINDEX(',', @DNSServer) - 1);
--
INSERT INTO Dhcp_Entries (bootinfo, haddress, ipaddress, netmask, gateway, dns, timelease, info, UUID, Client_id)
VALUES (2, @MACAddress, dbo.fnc_GetFirstIP(@IPAddress), dbo.fnc_GetFirstIP(@SubnetMask), @StandardGateway, @DNSServer, 1000, @Name, @UUID, @ClientID)
SELECT @PXEID = SCOPE_IDENTITY()
UPDATE Clients SET pxe_id = @PXEID WHERE client_id = @ClientID
--PRINT @ClientID
--
FETCH NEXT FROM PXE_Cursor INTO @ClientID, @MACAddress, @UUID, @IPAddress, @SubnetMask, @StandardGateway, @DNSServer, @Name
END
CLOSE PXE_Cursor
DEALLOCATE PXE_Cursor;

-- Set the id of matching Dhcp_Entries to the Clients table
UPDATE Clients SET pxe_id = (SELECT de.id FROM Dhcp_Entries de WHERE de.haddress = MACAddress AND de.UUID = UUID)
WHERE pxe_id NOT IN (SELECT id FROM Dhcp_Entries)


#####################################
Hier wird allerdings für jeden Client das Flag gesetzt.

Perfekt!!!
Danke!
Mit dem set-empirumproperty habe ich rumgetestet bin aber irgendwie nicht zum erfolg gekommen weil $targetobject bei mir nie sauber funktionierte egal ob ich ich vorher über get-empirumcomputer die infos in eine $variable geschrieben habe oder den namen direkt angegeben habe :(
Wäre aber nochmal interessant zu erfahren ob das auch funktioniert (ggf über eine Schleife mit einlesen aller Computer)

Post Reply

Return to “Empirum SDK”

Who is online

Users browsing this forum: No registered users and 1 guest