AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-118258

HopelessN00b's questions

Martin Hope
HopelessN00b
Asked: 2017-07-19 06:04:30 +0800 CST

在 Powershell 中截断部分 LDAP DN?(或从 LDAP DN 获取 OU。)

  • 2

在 PowerShell 中获取包含 LDAP 对象的 OU 的最简单方法是什么?

我正在编写一个脚本来管理一些我用脚本制作的“动态”组,我可以使用以下内容获得完整的专有名称:

$PseudoDynamicGroupDN = (Get-ADGroup -Filter {Name -like $PseudoDynamicGroup}).DistinguishedName

它返回如下内容:

CN=MyPseudoDynamicGroup,OU=Users,OU=BusinessUnit,OU=Site,OU=Company,DC=domain,DC=forest,DC=tld

我希望丢弃这CN=MyPseudoDynamicGroup,一点,所以我最终得到:

OU=Users,OU=BusinessUnit,OU=Site,OU=Company,DC=domain,DC=forest,DC=tld

我如何尽可能轻松地做到这一点?我尝试使用Split 运算符,但这会返回一个数组,并去掉逗号,迫使我重新添加它们。我怀疑有更好的方法。

windows
  • 1 个回答
  • 324 Views
Martin Hope
HopelessN00b
Asked: 2017-06-03 11:41:08 +0800 CST

如何使用 PowerShell 获取 Tomcat 的日志路径?

  • 1

我有许多运行各种版本的 Tomcat 8 的 Windows 服务器,并且我需要能够在 PowerShell 脚本中获取 Tomcat 日志路径,以便使用此脚本执行管理功能。

据称 Tomcat 提供了一个包含此信息的日志 API,但我没有成功使用 PowerShell 访问它(并且怀疑这远不是在任何情况下获得我想要的东西的最简单方法)。但是,我注意到,至少对于我的 Tomcat 服务器,日志路径是应用程序安装路径的子文件夹,例如:

C:\Program Files\Apache Software Foundation\Tomcat 8.0\logs

那么,如何以编程方式从我的 PowerShell 脚本中获取此日志路径?

windows
  • 2 个回答
  • 1358 Views
Martin Hope
HopelessN00b
Asked: 2016-04-29 11:00:55 +0800 CST

如何使用 PowerShell 对早于 x 天的日志文件启用 NTFS 压缩?

  • 13

我有一个运行 Windows 2012 R2 的应用程序服务器,它会生成大量日志文件,以至于它会半定期地在可用空间之外运行应用程序卷。由于应用程序本身的限制,我无法移动或重命名日志文件或启用 NTFS 重复数据删除,并且由于它不再是十年前,我不想使用批处理或 vbscript 来执行此操作为了我。

日志文件都在应用程序安装目录的各个子文件夹中,扩展名不同(一个组件添加日期作为日志文件扩展名),并且应用程序安装目录中有一个空间,因为应用程序开发人员是恶意的。写入日志的子文件夹至少专门用于写入日志。这也是一个 CPU 密集型应用程序,因此我不想自己压缩日志文件夹并招致与为日志写入压缩文件相关的 CPU 损失。

如何使用 PowerShell 对早于 x 天的日志文件启用 NTFS 压缩?

windows powershell ntfs windows-server-2012-r2 powershell-v4.0
  • 5 个回答
  • 7758 Views
Martin Hope
HopelessN00b
Asked: 2016-04-16 09:26:31 +0800 CST

在企业中部署 Windows 10 - 如何删除预安装的应用程序?

  • 26

我正在尝试在工作中部署一些 Windows 10 机器,并且需要删除或禁用预安装的应用程序。

出于某种原因,管理层认为不应将 Xbox 应用程序和 Candy Crush Soda Saga(等)安装在公司工作站上。

我们已经尝试在事后卸载它们,但是对于任何登录的新用户,它们会再次出现,这是不可接受的。我们如何真正从我们的企业 Windows 10 映像中删除这些应用程序?

image windows-10
  • 3 个回答
  • 21398 Views
Martin Hope
HopelessN00b
Asked: 2015-10-30 08:27:47 +0800 CST

如何查看/导出/确定 Windows ADCS CA 的配置?

  • 4

我正在为已经拥有许多现有 CA 的多林环境中的子域设置新的根 ADCS(Active Directory 证书服务器)证书颁发机构。我非常不想重复上一个人所做的事情,即以一种特别的方式设置东西并且什么都不记录,所以我正在寻找一种方法来标准化我们的 CA 的配置。

为此,有没有办法查看/导出/确定 Windows ADCS CA 的配置?特别是,我似乎无法确定的设置是Private Key Cryptography options,如下面的设置对话框所示。

在此处输入图像描述

现有的 CA 是 Server 2008 R2 或 Server 2012 R2,因此理想/希望是,我正在寻找一种适用于两者的解决方案。

windows
  • 2 个回答
  • 562 Views
Martin Hope
HopelessN00b
Asked: 2015-10-08 12:32:04 +0800 CST

停!我继承了重定向文件夹/主目录的权限噩梦

  • 22

我的新雇主为其数百名用户设置了文件夹重定向,而设置它的人并不真正知道他在做什么。因此,未遵循重定向文件夹/主目录权限的最佳做法。

让人们访问他们重定向的文件夹位置的解决方案是改为在根目录(“Home”)应用Full Control权限(NTFS 权限,当然不是“共享”权限)并将其传播到根目录下的所有子文件夹和文件Everyone.

有什么可能出错的,对吧?这不像 CEO 的My Documents文件夹中有机密信息,或者任何人都会感染 CryptoWall 并加密其他所有人的文件。正确的?

所以,无论如何,既然 CryptoWall 感染已被删除并已恢复备份,许多人希望我们用不那么可怕的东西替换当前权限,我不想在几个权限对话框中单击一百个文件夹。

PowerShell 如何为我解决这个问题,让生活重获新生?

windows
  • 2 个回答
  • 2883 Views
Martin Hope
HopelessN00b
Asked: 2015-01-29 07:39:57 +0800 CST

在 ESXi 环境中使用 EFI 固件和 GPT 引导磁盘是否有任何显着的优势(或劣势)?

  • 10

正如标题所问的,我的基本问题是:在 ESXi 环境中使用 EFI 固件和 GPT 引导磁盘有什么明显的优点(或缺点)吗?“值得注意”是指除了众所周知的 MBR 磁盘 2 TB 限制以及 BIOS 引导固件必须使用 MBR 磁盘从其引导的限制之外的任何内容。

具体的 VM 选项在下面的屏幕截图中。

在此处输入图像描述

万一它有所作为,我的特定环境的一些背景和细节如下,尽管我对一般情况以及与 Windows 环境特别相关或仅与 Windows 环境相关的任何内容感兴趣。


由于最近的一些项目,我成功地将我在 $[day_job] 的公司霸主拖入了当前十年,我将更换我们的许多家庭办公系统。这些系统以及它们将被替换的系统主要是在 ESX 5.5 上虚拟化的 Windows Server 操作系统(现在更新 1,即将更新 2,以及 VMFS5,因此支持大容量)。VM 以及它们访问的所有存储都位于 SAN (EMC VNX 5400) 上,该 SAN 通过 NFS 共享呈现给 ESXi 主机。一切都是精简配置的。

在大多数情况下,我只是将一堆大型、复杂的 PITA 系统升级到更新的平台——例如,我们目前在 Server 2003 R2 上运行且不使用 DFS 的多 TB 文件服务器将升级到 Server 2012 R2,放入 DFS 命名空间,利用 DFS 复制,并开始使用 Server 2012 重复数据删除。我们目前运行在Server 2003 R2和SQL Server 2005上的SharePoint系统将升级到SharePoint 2013,运行Server 2012 R2,并搭载SQL Server 2008 R2或更高版本的引擎。等等。

在研究文件服务器以及如何处理它们上的数据量(我们每个家庭办公室文件服务器的数据超过 2 TB)时,我研究并确定了服务器中的重复数据删除功能2012. 由于这适用于每个卷,因此如果所有数据都是一个卷,而不是像我们目前的混乱那样分成多个卷,则效果最好。这带来了 GPT 磁盘最适合我们的数据量的问题,并让我想到了 EFI 与 BIOS 固件的问题。我们的服务器都有 50 GB 的 OS [虚拟] 磁盘,与任何数据卷分开,至少目前,我计划保持这种状态 - 能够将数据卷附加到新 VM 非常有用.

因此,考虑到这一点,我无法设想我们曾经需要或希望 VM 从需要 GPT 以超过 2 TB MBR 磁盘限制的卷引导的场景。环境是纯虚拟的这一事实似乎否定了 GPT 磁盘的可恢复性优势,所以我想不出任何令人信服的理由开始使用 EFI 启动固件和/或 GPT 启动卷构建我们的新 VM。当然,我也想不出任何令人信服的理由来坚持使用 BIOS 引导固件和 MBR 磁盘,因此,我的问题是:

在 ESXi 环境中使用 EFI 固件和 GPT 引导磁盘是否有任何显着的优势(或劣势)?(“值得注意”是指除了众所周知的 MBR 磁盘 2 TB 限制以及 BIOS 引导固件必须使用 MBR 磁盘从其引导的限制之外的任何内容。)

windows
  • 2 个回答
  • 7147 Views
Martin Hope
HopelessN00b
Asked: 2014-12-18 12:50:11 +0800 CST

对于面向 Internet 的多功能 Exchange 服务器,我需要什么才能通过防火墙?

  • 6

由于最近一次渗透测试的结果,我们表现不佳,我注意到我们面向 Internet 的多功能一体式 Exchange 2010 SP3 服务器没有安装防火墙,因此完全暴露在互联网上。我自己验证了结果,确实很糟糕。SMB、LDAP、远程注册表、RDP 以及您在 Windows Active Directory 环境中找到的所有其他默认服务都通过我们的 Exchange 服务器向 Internet 公开。

自然,我想解决这个问题,并计划使用 Windows 防火墙来解决这个问题,但是在谷歌搜索中,我从官方来源中能够找到的只是端口引用,这些引用似乎适用于内部 Exchange 流量,并且一篇Technet 博客文章说不要使用这些引用来配置您的防火墙,因为 Exchange 服务器之间唯一受支持的配置相当于一条ANY:ANY allow规则。:/

鉴于我们使用 Active Sync、OWA、IMAP、日历/地址簿共享、自动发现和 Outlook 客户端访问,是否有人知道面向 Internet 的多合一 Exchange 服务器需要哪些防火墙规则? (对于拥有官方 MS 资源的任何人,也可以以小额赏金的形式获得奖励积分。)

在我的脑海中,作为一名意外的 Exchange 管理员和意外的 IT 安全人员,我有很多经验,我想出了下面的列表(对我来说似乎太长也太短),但在我去之前可能会破坏一千个抱怨用户的电子邮件,我真的很想验证我打算做什么。

TCP:25 for SMTP
TCP:465 for SMTPS
TCP:587 for SMTP
TCP:80 for OWA http to https redirect
TCP:443 for https/OWA/Active Sync/EWS/Autodiscover
TCP:143 for Endpoint Mapper/IMAP4 Client Access
TCP:993 for IMAP4 Client Access (also)
TCP:110 for POP3 (because some technological dinosaur of a VIP probably uses POP3 at his beach house/ski cabin/where ever)
TCP:995 for POP3 (because some technological dinosaur of a VIP probably uses POP3 at his beach house/ski cabin/where ever)
firewall
  • 2 个回答
  • 1467 Views
Martin Hope
HopelessN00b
Asked: 2014-11-26 11:56:54 +0800 CST

与根 DNS 区域同名并浏览到同名站点的 Active Directory 林

  • 11

与我之前的这个问题有关,为什么使用根域名作为 Active Directory 林的名称是个坏主意......

出于简单(和诚实)的目的,我有一个雇主,我将其称为 ITcluelessinc。该雇主有一个外部托管网站www.ITcluelessinc.com和一些 Active Directory 域。许多年前,由于对 IT 一无所知,他们将自己建立在一个名为 的 Active Directory 森林ITcluelessinc.prv中,并对它进行了难以形容的暴行。这些无法形容的暴行最终追上了他们,在他们周围的一切都崩溃的情况下,他们决定付给某人一大笔钱来“修复它”,其中包括迁移出可怕的破碎ITcluelessinc.prv森林。

当然,由于对 IT 一无所知,他们在听到它时并不知道好的建议,接受了命名他们的新 AD 森林的建议ITcluelessinc.com,而不是他们也得到的理智建议,并开始在上面放东西。快进到几个小时前,我们有一家公司,它的大部分东西都加入并使用旧的ITcluelessinc.prvActive Directory 林,还有相当数量的新产品加入和/或使用该ITcluelessinc.com林。为了使这项工作相对无缝地协同工作,我在 DNS 中使用条件转发器将ITcluelessinc.com流量发送到ITcluelessinc.prv,反之亦然。

在此处输入图像描述

(corp.ITcluelessinc.com和eval.ITcluelessinc.com域是我后来设置的正确命名的域,现在还不相关。)

回到几个小时前,ITcluelessinc 的一名非技术员工注意到她无法从她的工作站(在 ITcluelessinc 公司网络内)浏览到www.ITcluelessinc.com,并认为这是一个问题,因此她联系ITcluelessinc 的 VIP 员工,他决定必须解决这个问题。通常,没什么大不了的,www在 的 DNS 区域下添加一个 A 记录ITcluelessinc.com,您就可以浏览该站点,只要您不尝试裸链接即可。

在此处输入图像描述

所以,看起来一切都设置正确。转发器、wwwDNS 中的主机条目,以及使用ITcluelessinc.prv域控制器作为 DNS 服务器的客户端在尝试浏览www.ITcluelessinc.com而不是我从家庭网络获得的网页时会出现连接超时。

鉴于Active Directory 林的存在及其所需的条件转发器,是否有人对我如何允许ITcluelessinc.prv域的内部客户端浏览www.ITcluelessinc.com有任何想法?ITcluelessinc.com或者,是否有人 [其他] 确信使其工作的唯一方法是摆脱ITcluelessinc.comActive Directory 林?

看起来我现在的设置应该可以工作,但显然不是,而且我不知道我会在哪里获得一个搞砸的测试环境来进行实验。对于它的价值,我有点礼貌地建议解决这个问题的唯一方法是迁移到我设置的正确命名的森林,如果这还不够好,请计划在所有网站上托管网站的镜像我们的域控制器,直到打破一切。ITcluelessinc.com

domain-name-system
  • 1 个回答
  • 2047 Views
Martin Hope
HopelessN00b
Asked: 2014-10-21 09:41:32 +0800 CST

如何阻止单个 GPO 的继承/应用?

  • 9

由于最近的勒索软件爆发(Cryptolocker/Cryptowall/等)产生的工作量,我最近的任务是实施软件限制策略以阻止程序从临时目录执行。这通常工作得很好,但是当我们需要安装软件时,我们遇到了一个问题,因为这些软件限制策略会阻止安装程序访问机器临时目录。

我们的 Active Directory 层次结构基本上是按照我们的物理站点进行组织的,我们的 AD 对象从域根及其特定站点 OU 中分别继承了大约几十个 GPO。因此,我没有选择在域根目录之外创建一个被阻止的策略 OU(因为不继承特定于站点的组策略设置会导致机器出现大问题,并且远程用户没有足够的技能来解决它​​们),或者将组策略对象重新链接到更靠近子 OU 的位置(因为这将涉及数百个取消链接和重新链接操作,我不愿意这样做),或者在每个子 OU 处创建一个继承被阻止的子 OU(因为我有在这种情况下要做数百个链接操作)。

也就是说,我确实需要一种方法来暂时阻止 GPO 应用软件限制策略,以便我们可以不时安装软件。我最初尝试通过在每个站点创建一个子 OU 并链接反向软件限制策略来解决此问题,认为反向策略的更高优先级将覆盖继承的策略,但这根本不起作用 - RSOP 显示计算机得到了补充disallow和unrestricted规则,disallow在那种情况下规则获胜。

因此,考虑到所有这些(无法重新链接我们所有的 GPO,无法创建简单的继承阻塞 OU,并且具有更高优先级的 GPO 似乎无法解决我的问题),我该怎么做 [暂时]阻止应用继承的软件限制 GPO?假设 Server 2008 R2 FL 域/林上的 Windows 7 客户端。

windows
  • 2 个回答
  • 15951 Views
Martin Hope
HopelessN00b
Asked: 2014-09-06 12:20:50 +0800 CST

如何一次远程向数千台 Windows 域计算机发出 CLI 命令?

  • 7

我需要向我域中的所有数千台计算机发出 CLI 命令(cmd.exe 或 PowerShell)。出于显而易见的原因,这不会涉及手动执行任务或物理访问每台机器。

这应该怎么做?

windows
  • 1 个回答
  • 6263 Views
Martin Hope
HopelessN00b
Asked: 2014-07-02 04:24:30 +0800 CST

如何禁用/抑制在 ESX/ESXi 主机上启用 SSH 时收到的警告?

  • 3

我管理了大量的 ESXi 主机,为了有效地做到这一点,我几乎需要始终允许 SSH 进入主机,因为在每个主机上通过 vCenter/vSphere 启用和禁用 SSH 访问太繁琐了每次我需要登录主机并查看主机之间的 CLI 或 SCP 文件或其他任何内容时,都可以使用主机。

但是,我面临的问题是 vSphere 中的默认行为是在启用了 SSH 访问的任何主机上显示警告图标和 nag-banner。

在此处输入图像描述

这不仅仅是烦人,如果在我的任何主机上存在我真正关心的警告条件,例如 CPU 或内存使用率高、磁盘空间低、冗余丢失等,就无法从快速的视觉扫描中看到。

那么,我该如何摆脱这个警告图标(如果可能的话,还有唠叨横幅)?

ssh
  • 3 个回答
  • 1191 Views
Martin Hope
HopelessN00b
Asked: 2014-06-19 20:02:19 +0800 CST

是否可以编辑虚拟化 vCenter 服务器上的设置?

  • 2

所以,这对我来说很奇怪,但由于我无法控制的原因,我们有一个在虚拟化 Windows 客户机上运行的 vCenter 服务器。此 vCenter 服务器也是其所在站点(vSphere 数据中心)的唯一 vCenter 服务器,并在其管理的同一 ESXi 主机上运行。

在升级到最新的 ESXi 5.5 问题时,为了解决 5.x.0.0 ESXi 版本上的 e1000 vNIC + Windows PSOD,我不得不在这个站点升级 vCenter 服务器。它变得可怕,因为服务器上唯一的磁盘太小了,所以我不得不压缩它,这似乎完全搞砸了安装,因为它压缩了和下的 VMware文件..\Infrastructure\...夹,而 vCenter真的不喜欢 - 文件夹压缩/解压缩为了腾出足够的空间进行安装,我不得不这样做,这实际上破坏了两个站点的 vCenter SSO 服务,并且该站点上的 vCenter Server 服务不可用。Program FilesProgram Files (x86)

鉴于我现在必须在这台服务器上重新安装,我希望增加磁盘驱动器的大小,我意识到这对我来说不是一个可用的选项,因为这个虚拟化的 vCenter 服务器必须打开电源,并由自己运行......自己(vCenter)。

在此处输入图像描述

那么,有没有人知道在这个 ESXi 主机开机时增加磁盘大小的方法?(因为它必须打开电源,因为它也是 vCenter 服务器。)

如果有人也知道如何删除那个令人讨厌的软盘设备,那么加分和钦佩。

windows
  • 3 个回答
  • 2477 Views
Martin Hope
HopelessN00b
Asked: 2014-06-14 12:47:37 +0800 CST

SCCM 用户状态迁移 - 此用户的数据消失了吗?

  • 8

长话短说(ish),我们正处于从 XP 到 Windows 7 迁移项目的最后阶段,最终获得了一些要迁移的 VIP 机器。由于这台机器几乎和上面的操作系统一样旧,所以除了新的操作系统之外,这个特定的用户还“有幸”拥有了新的硬件。

问题是我们让实习生做了这个特殊的迁移,他有点搞砸了。严重地。简而言之,用户状态迁移的一般过程是在 SCCM 中创建新旧计算机之间的关联,在旧计算机上运行捕获任务序列,然后在新计算机上执行恢复序列。在这种情况下,捕获任务序列是在计算机关联之前运行的,因此 SCCM 拒绝执行还原,并且旧机器被重新格式化......由于某种原因......在这被发现之前。

现在,当我们尝试通过“恢复”USMT.mig捕获并上传到 SCCM 服务器来迁移用户时,我们会在操作之后收到以下错误Request State Store。

在此处输入图像描述

 Task Sequence: USMT - Restore State has failed with the error code  (0x00004005). 
 For more information, contact your system administrator or helpdesk operator.

来自的相关日志条目smsts[date-time].log似乎是:

<![LOG[Requesting SMP Root share config information from http://[Our SCCM server]:0]LOG]!><time="15:45:28.823+240" date="06-13-2014" component="OSDSMPClient" context="" type="1" thread="5136" file="smpclient.cpp:2348">
<![LOG[Received 4027 byte response.]LOG]!><time="15:45:28.892+240" date="06-13-2014" component="OSDSMPClient" context="" type="0" thread="5136" file="smpclient.cpp:2363">
<![LOG[Adding \\[Our SCCM server]\SMPSTORED_378B856C$ to list ]LOG]!><time="15:45:28.912+240" date="06-13-2014" component="OSDSMPClient" context="" type="1" thread="5136" file="smpclient.cpp:2403">
<![LOG[Successfully connected to "\\[Our SCCM server]\SMPSTORED_378B856C$"]LOG]!><time="15:45:28.919+240" date="06-13-2014" component="OSDSMPClient" context="" type="1" thread="5136" file="tsconnection.cpp:287">
<![LOG[Sending SMP request to http://[Our SCCM server]:0.]LOG]!><time="15:45:28.950+240" date="06-13-2014" component="OSDSMPClient" context="" type="1" thread="5136" file="smpclient.cpp:1854">
<![LOG[Received 4899 byte response.]LOG]!><time="15:45:29.045+240" date="06-13-2014" component="OSDSMPClient" context="" type="0" thread="5136" file="smpclient.cpp:1861">
<![LOG[SMP request to "http://[Our SCCM server]" failed with error: E_SMPERROR_MIGRATIONID_NOT_FOUND (204)]LOG]!><time="15:45:29.065+240" date="06-13-2014" component="OSDSMPClient" context="" type="2" thread="5136" file="smpclient.cpp:135">
<![LOG[Request to SMP 'http://[Our SCCM server]' failed with error (Code 0x80004005). Trying next SMP.]LOG]!><time="15:45:29.065+240" date="06-13-2014" component="OSDSMPClient" context="" type="2" thread="5136" file="smpclient.cpp:1601">
<![LOG[Failed to find an SMP that can serve request after trying 4 attempts.]LOG]!><time="15:45:29.065+240" date="06-13-2014" component="OSDSMPClient" context="" type="3" thread="5136" file="smpclient.cpp:1644">
<![LOG[ExecuteRestoreRequestToSMP failed (0x80004005).]LOG]!><time="15:45:29.065+240" date="06-13-2014" component="OSDSMPClient" context="" type="3" thread="5136" file="smpclient.cpp:2862">
<![LOG[ExecuteRestoreRequest failed (0x80004005).]LOG]!><time="15:45:29.065+240" date="06-13-2014" component="OSDSMPClient" context="" type="3" thread="5136" file="smpclient.cpp:2926">
<![LOG[OSDSMPClient finished: 0x00004005]LOG]!><time="15:45:29.065+240" date="06-13-2014" component="OSDSMPClient" context="" type="1" thread="5136" file="main.cpp:124">
<![LOG[Process completed with exit code 16389]LOG]!><time="15:45:29.077+240" date="06-13-2014" component="TSManager" context="" type="1" thread="5744" file="commandline.cpp:1123">
<![LOG[!--------------------------------------------------------------------------------------------!]LOG]!><time="15:45:29.078+240" date="06-13-2014" component="TSManager" context="" type="1" thread="5744" file="instruction.cxx:804">
<![LOG[Failed to run the action: Request State Store. 
Unknown error (Error: 00004005; Source: Unknown)]LOG]!><time="15:45:29.082+240" date="06-13-2014" component="TSManager" context="" type="3" thread="5744" file="instruction.cxx:895">
<![LOG[Set authenticator in transport]LOG]!><time="15:45:29.088+240" date="06-13-2014" component="TSManager" context="" type="0" thread="5744" file="libsmsmessaging.cpp:7734">
<![LOG[Set a global environment variable _SMSTSLastActionRetCode=16389]LOG]!><time="15:45:29.350+240" date="06-13-2014" component="TSManager" context="" type="0" thread="5744" file="executionenv.cxx:668">
<![LOG[Set a global environment variable _SMSTSLastActionSucceeded=false]LOG]!><time="15:45:29.352+240" date="06-13-2014" component="TSManager" context="" type="0" thread="5744" file="executionenv.cxx:668">
<![LOG[Clear local default environment]LOG]!><time="15:45:29.353+240" date="06-13-2014" component="TSManager" context="" type="0" thread="5744" file="executionenv.cxx:807">
<![LOG[Failed to run the action: Request State Store. Execution has been aborted]LOG]!><time="15:45:29.365+240" date="06-13-2014" component="TSManager" context="" type="3" thread="5744" file="instruction.cxx:983">
<![LOG[Set authenticator in transport]LOG]!><time="15:45:29.373+240" date="06-13-2014" component="TSManager" context="" type="0" thread="5744" file="libsmsmessaging.cpp:7734">
<![LOG[Failed to run the last action: Request State Store. Execution of task sequence failed.
Unknown error (Error: 00004005; Source: Unknown)]LOG]!><time="15:45:29.700+240" date="06-13-2014" component="TSManager" context="" type="3" thread="5744" file="engine.cxx:213">
<![LOG[Set authenticator in transport]LOG]!><time="15:45:29.708+240" date="06-13-2014" component="TSManager" context="" type="0" thread="5744" file="libsmsmessaging.cpp:7734">
<![LOG[Task Sequence Engine failed! Code: enExecutionFail]LOG]!><time="15:45:33.323+240" date="06-13-2014" component="TSManager" context="" type="3" thread="5744" file="tsmanager.cpp:923">

尝试使用->USMT.mig中找到的恢复密钥解密文件显然不起作用,并且在重新格式化原始计算机后,我很快感觉到解密此文件所需的任何密钥痕迹都可能消失。Computer AssociationRecovery Information

在此处输入图像描述

所以现在我们USMT.mig的 SCCM 服务器上有一个可爱的文件,没有办法恢复它,或者手动解密它(至少据我所知)。

既然它出现了,这是通过 GUI 完成的,所以我们不能返回查看 CLI 命令以从那里恢复,我很确定这个.mig文件是加密的 - MigViewer警告它已加密,并尝试无论如何提取文件会导致 0 字节文件(corrupt)附加到文件名。

我们运气不好,还是有人知道让我们摆脱束缚的方法?

migration
  • 4 个回答
  • 7285 Views
Martin Hope
HopelessN00b
Asked: 2014-05-24 09:57:10 +0800 CST

如何删除这个孤立的 Active Directory 计算机对象(最好使用 PowerShell)?

  • 20

我正在使用 PowerShell v2.0 的 Windows 7 工作站工作,并尝试从启用Active Directory 回收站LostAndFound的 2008 R2 FL 林和域中的容器中删除特定(孤立的?)对象,但没有运气用任何东西。

重要的是,我需要删除这个对象,并且只删除这个对象(而不是删除具有该IsDeleted属性的每个对象,这似乎是我能找到的所有帮助)。

我需要删除它,因为为了解决破坏的信任关系,计算机与域脱节(可能导致对象进入回收站,然后进入LostAndFound容器),我们想给它其原始名称(基于 PC 上的资产标签号)。尝试使用正确名称将计算机重新加入域失败,并显示以下错误消息 ( The specified account does not exist)

在此处输入图像描述

并尝试将其重命名为正确的名称,一旦它已经在域中失败,并显示以下错误消息 ( The account already exists)

在此处输入图像描述

所以实际的 PC 目前正以不正确的名称坐在那里,我需要更正。

但是,尝试删除此 AD 对象会产生错误:The specified account does not exist. 对象的专有名称中有一个\(反斜杠)字符,我认为这是由于它在LostAndFound容器中,我想知道这是否是问题......以及如何解决它。我正在运行我的 shell domain admin,验证了该domain admins组对相关对象具有完全控制和所有权,但似乎无法弄清楚这一点。

有问题的对象(有些编辑):

Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects -Properties *

accountExpires                  : 9223372036854775807
CanonicalName                   : MyEmployer.prv/LostAndFound/SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
CN                              : SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
codePage                        : 0
countryCode                     : 0
Created                         : 12/7/2012 9:25:30 PM
createTimeStamp                 : 12/7/2012 9:25:30 PM
Deleted                         :
Description                     : HP6300
DisplayName                     :
DistinguishedName               : CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=
                                  prv
dNSHostName                     : SomeComputer.MyEmployer.prv
dSCorePropagationData           : {5/21/2014 1:40:31 PM, 12/31/1600 7:00:00 PM}
instanceType                    : 4
isCriticalSystemObject          : False
isDeleted                       :
LastKnownParent                 : OU=Workstations,OU=Computers,OU=One of Our Sites,DC=MyEmployer,DC=prv
lastLogonTimestamp              : 130451668084269817
localPolicyFlags                : 0
memberOf                        : {CN=PCMilerComputers,DC=MyEmployer,DC=prv}
Modified                        : 5/21/2014 1:40:54 PM
modifyTimeStamp                 : 5/21/2014 1:40:54 PM
msDS-LastKnownRDN               : SomeComputer
Name                            : SomeComputer
                                  DEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6
nTSecurityDescriptor            : System.DirectoryServices.ActiveDirectorySecurity
ObjectCategory                  :
ObjectClass                     : computer
ObjectGUID                      : 90a13eaa-c7b0-4258-bebb-87b7aed39ec6
objectSid                       : S-1-5-21-1708945318-605057401-313073093-5882480
operatingSystem                 : Windows 7 Enterprise
operatingSystemServicePack      : Service Pack 1
operatingSystemVersion          : 6.1 (7601)
primaryGroupID                  : 515
ProtectedFromAccidentalDeletion : False
pwdLastSet                      : 130451667147545072
sAMAccountName                  : SomeComputer$
sDRightsEffective               : 15
servicePrincipalName            : {HOST/SomeComputer, HOST/SomeComputer.MyEmployer.prv}
userAccountControl              : 4096
userCertificate                 : [Not included]
uSNChanged                      : 54007434
uSNCreated                      : 5004556
whenChanged                     : 5/21/2014 1:40:44 PM
whenCreated                     : 12/7/2012 9:25:30 PM

我尝试过的任何东西似乎都不起作用,而且我尝试了很多。在那张纸条上,我在下面尝试过。

首先,使用简单的单行 PowerShell cmdlet:


Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:145
+ Get-ADObject "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

然后,同样的事情,而是引用 GUID。


Get-ADObject "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"  -IncludeDeletdObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:94
+ Get-ADObject "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"  -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

然后,首先将值读入变量。(尝试同时使用 GUID 和 DN,只显示一个,因为它们产生相同的错误)。


$blah = "90a13eaa-c7b0-4258-bebb-87b7aed39ec6"
Get-ADObject $blah -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target
"CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Remove-ADObject : The specified account does not exist
At line:1 char:60
+ Get-ADObject $blah -IncludeDeletedObjects | Remove-ADObject <<<<
    + CategoryInfo          : NotSpecified: (CN=SomeComputer\0ADE...MyEmployer,DC=prv:ADObject) [Remove-ADObject], ADException
    + FullyQualifiedErrorId : The specified account does not exist,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject

然后我想我可以忍受不得不调用 DSRM而不是本地调用它。


dsrm "CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=Lost
AndFound,DC=MyEmployer,DC=prv"

Are you sure you wish to delete CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv
 (Y/N)? y
dsrm failed:CN=SomeComputer\0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv:The specified account does not exist.

然后我说要让它自动化,我只需右键单击并通过 ADSIedit 删除它。

在此处输入图像描述


所以,最后,我吞下我的骄傲,在这里问。 我到底要如何摆脱这个该死的东西? 它显然存在,并且它的存在导致了问题,但我从 Active Directory 中删除它的所有尝试都遇到了谎言、该死的谎言和错误消息。


更新:

根据与 ServerFaulters 的评论、建议和讨论,其他没有奏效的事情:

转义0, 好像\0代表一个空字节。


Get-ADObject "CN=SomeComputer`0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`0ADEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -Includ
eDeletedObjects | Remove-ADObject
    + CategoryInfo          : NotSpecified: (CN=SomeComputer ADEL...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADException
    + FullyQualifiedErrorId : No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest,Microsoft.ActiveDirectory.Management.Commands.GetADObject

转义整个\0A,就好像它是回车或换行一样,就像在 DOS 中一样(尝试使用 `n、`r、`n`r 和 `r`n)。所有都返回相同的错误,所以只显示一次。


Get-ADObject "SomeComputer`n`rDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : The object name has bad syntax
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`n`rDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject
    + CategoryInfo          : NotSpecified: (CN=SomeComputer
DEL...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADException
    + FullyQualifiedErrorId : The object name has bad syntax,Microsoft.ActiveDirectory.Management.Commands.GetADObject

\0A将其作为表单提要转义(是的,有点绝望)。


Get-ADObject "CN=SomeComputer`fDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject

Get-ADObject : Directory object not found
At line:1 char:13
+ Get-ADObject <<<<  "CN=SomeComputer`fDEL:90a13eaa-c7b0-4258-bebb-87b7aed39ec6,CN=LostAndFound,DC=MyEmployer,DC=prv" -IncludeDeletedObjects | Remove-ADObject
    + CategoryInfo          : ObjectNotFound: (CN=SomeComputer♀DEL:...MyEmployer,DC=prv:ADObject) [Get-ADObject], ADIdentityNotFoundException
    + FullyQualifiedErrorId : Directory object not found,Microsoft.ActiveDirectory.Management.Commands.GetADObject

然后我想我应该确定 \0A字符是否是问题,所以我在 AD 回收站中选择了一个我不关心的对象,其中包含\0A字符串并试图将其吹走。有效。


Get-ADObject -Filter { Name -Like '*DEL:*' } -IncludeDeletedObjects | Remove-ADObject

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "CN=SomeServer-SomeJackass HP LaserJet 1320
PS\0ADEL:eddb23e7-b8d8-4d00-801f-22d82c169d66,CN=Deleted Objects,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y

Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "CN=SomeServer-SomeJackass HP LaserJet 1320 PCL
5e\0ADEL:6e72e78f-f110-492c-ad50-91107f6fbd6a,CN=Deleted Objects,DC=MyEmployer,DC=prv".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y

windows
  • 3 个回答
  • 17697 Views
Martin Hope
HopelessN00b
Asked: 2014-04-17 07:23:01 +0800 CST

我可以在 Server 2012/R2 上禁用 WSD(设备 Web 服务)吗?如何?

  • 12

我正在寻找一种在 Server 2012 和 Server 2012 R2 上禁用 WSD 的方法。基本上,我们的一些打印服务器上的一些打印机已经决定使用这种该死的服务比使用他们分配的 TCP/IP 端口更好,他们正在将自己转换为 WSD 端口,这导致用户无法使用打印到这些打印机。

在 Windows 2008 R2 服务器上,我可以通过停止和禁用 PnP-X IP Bus Enumerator 服务来防止这种行为,但是,该服务似乎不存在于 Server 2012 中。

我遇到的阻止这种行为的唯一建议都是次优的。

  1. 关闭网络发现(WDS 依赖其运行)
  2. 在防火墙处阻止 WDS
  3. 禁用打印机上的 WDS 功能。

我想要一种在打印服务器上禁用此服务(并且仅此服务)的方法,因为任何其他选项都涉及比我想要的更多的工作 (2, 3) 或具有不良副作用 (1 )。有谁知道这样做的方法?

windows-server-2012
  • 7 个回答
  • 82316 Views
Martin Hope
HopelessN00b
Asked: 2014-04-10 08:04:00 +0800 CST

有谁知道如何在 ADDS“打印机目录”中获取跨林打印机?

  • 3

我目前正在进行活动目录林迁移,除此之外,我们还决定开始将我们的客户端 PC 从 Windows XP 升级到 Windows 7。这给我留下了关于打印机的一些问题,因为我们的客户在旧的森林和域上,而我们的打印服务器在新的。我已经很好地设置了权限,以便每个人都可以访问、映射和打印到他们需要的打印机,但是他们习惯于在ADDS 打印机目录中拥有打印机,当然,从打印目录中列出打印机新域/林中的服务器不会在旧域/林中列出它们。

在此处输入图像描述

所以,鉴于我们的用户......抵制......改变,有没有人知道一种对 ADDS 打印机目录进行跨林搜索的方法,以便用户可以看到他们期望看到的内容,以及我们想在 ADDS 打印机目录搜索对话框中以打印机的形式显示它们?(如下图。)

在此处输入图像描述

到目前为止,我所能找到的只是一篇相当无用的 Technet 文章,它建议使用“ Microsoft Identity Integration Server 2003 ”服务器在森林之间同步该数据,我有点怀疑它是否会与运行 Server 2012 R2 域控制的 Server 2008 R2 FL 森林/域一起工作(除了更喜欢不涉及全新系统来管理和许可的解决方案,以获得该死的打印机的简单列表)。

用户可以通过指定打印机名称来配置计算机以使用特定打印机,这不需要林管理员进行额外配置。但是,如果您想让一个林中的用户能够浏览不同林中的打印机,请考虑使用 Microsoft Identity Integration Server 2003 在林之间同步打印机数据,如本文档前面的“跨林检索应用程序数据”中所述.

windows
  • 1 个回答
  • 2368 Views
Martin Hope
HopelessN00b
Asked: 2014-03-05 12:01:46 +0800 CST

什么是 Server 2012 Essentials,它与 Server 2012 有何不同?

  • 3

针对最近询问 Windows Server Essentials 2012/R2 中的功能的趋势,好像它们是“普通”Server 2012/R2 版本(标准版或数据中心版)的一部分,似乎我们都可以从以下问题中受益Windows Server Essentials,以及它与 Windows Server 的区别(并为此 Windows Server 的变体建立了几个标签)。

那么,话虽如此,什么是Windows Server Essentials,它与 Windows Server 的“常规”版本有何不同?

windows-server-2012
  • 2 个回答
  • 954 Views
Martin Hope
HopelessN00b
Asked: 2014-02-19 13:19:18 +0800 CST

作为受限用户,我如何查看安装到打印机的驱动程序?

  • 2

...或者,我需要授予某人什么权限,以便他们可以查看(但不能更改)Additional Drivers从 Windows 打印服务器共享的网络打印机上的内容?(服务器 2008 R2、服务器 2012、服务器 2012 R2)

问题是我们需要清点打印服务器上的所有打印机,特别是验证它们是否安装了 32 位和 64 位驱动程序。当然,为了让生活变得困难,我们不想让做库存的人拥有管理打印机或安装驱动程序的权限。

因此,这些库存人员看到的是Additional Drivers灰色按钮:

在此处输入图像描述

他们只需要查看 Additional Drivers 对话框,而不能对其进行编辑。

在此处输入图像描述

当然,我们可以通过“打印管理”管理单元查看打印服务器上安装的所有驱动程序,但这似乎无法将已安装的驱动程序与它们关联的打印机进行匹配. (一定有人认为这个功能太有用了。)

我也对命令行方法持开放态度,但我找不到可以列出与给定打印机关联的附加驱动程序的方法。Get-WMIObject -Class Win32_Printer -Computer [printserver name] 起初似乎很有希望,直到我阅读了class 的可用属性/属性,其中似乎包含驱动程序名称作为唯一可用的与驱动程序相关的属性。

用于打印管理的 PowerShell cmdlet 似乎也无法满足我的需求,并且无论如何仅适用于 Server 2012 R2 和 Windows 8.1(叹气)。

同时,我已经看到用户能够在不更改它们的情况下查看打印机上的其他驱动程序,所以我很确定这是可能的......但是,查看安全选项卡和权限选项打印机似乎没有说明此事。

在此处输入图像描述

剩下的问题是如何以受限用户的身份显示该信息,或者我需要分配哪些权限才能允许用户查看(但不能更改)打印机安装的驱动程序。

windows
  • 2 个回答
  • 2070 Views
Martin Hope
HopelessN00b
Asked: 2014-02-18 08:46:52 +0800 CST

通过 GPO/GPP 部署打印机 - 是否有编程选项?

  • 10

由于我无法控制的原因,我的任务是设置 GPO/GPP 以将我们的 100 多台打印机部署到我们的 1000 多个客户。

好消息是我们有十几个站点,而且在大多数情况下,我被允许将站点 X 的所有打印机推送到站点 X 的所有客户端 PC。

坏消息是我知道如何做到这一点的两种方法(“使用组策略部署...”,从打印服务器“和使用 GPP/组策略首选项)涉及的手动工作比我愿意做的要多得多这么多打印机。我什至无法选择打印服务器上的所有打印机并使用该Deploy with Group Policy...选项,例如 - 它希望我一个一个地做到这一点,这不会发生。GPP 甚至更糟,因为它希望我从打印服务器中选择打印机的路径,然后手动输入应该能够从打印机连接中获取的一堆信息(例如打印机 IP)。

我的 Google-Fu 用于将打印服务器上的所有打印机添加到 GPO/GPP 的脚本是空的,我似乎看不到另一种方法可以以半自动化的方式执行此操作,但我坚持相信我遗漏了一些东西,因为任何理智的人都不会选择手动将数百台打印机添加到 GPO 中。

理想情况下,我想找到一种编程方式来使用 GPP,但在这种情况下,任何不涉及数十小时手动添加打印机的解决方案都会很棒。

有没有人有办法做到这一点,还是我需要构建一个 PowerShell 脚本和/或欺骗下属这样做?

active-directory
  • 3 个回答
  • 6865 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve