标签: powershell

二进制注册表项的 DSC 语法

原本应该是简单的注册表 DSC 配置已经变成了令人有些沮丧的猜测。我正在尝试设置二进制注册表项。我发现不可能找到正确的值数据格式来正确设置密钥。我正在尝试将此注册表文件转换为 DSC:

\n\n
[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\DefaultSecurity]\n"SrvsvcShareAdminConnect"=hex:01,00,04,80,64,00,00,00,70,00,00,00,00,00,00,00,\\\n  14,00,00,00,02,00,50,00,03,00,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,\\\n  00,00,05,20,00,00,00,20,02,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,00,\\\n  00,05,20,00,00,00,25,02,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,00,00,\\\n  05,20,00,00,00,27,02,00,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00,\\\n  00,00,00,05,12,00,00,00\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经对注册表和 xregistry 资源进行了尝试,并遇到了相同的格式错误(我真的不介意我使用哪个)。我尝试将数据提供为单个字符串、字符串数组、附加 0x 以显示它是十六进制的字符串数组等。我也尝试了这里的建议。

\n\n

我得到的最接近的是下面的配置,它似乎有效:

\n\n
   Registry disableAdminShare {\n            Ensure      = "Present"\n            Key         = "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\DefaultSecurity"\n            Force       = $true\n            ValueName   = "SrvsvcShareAdminConnect"\n            ValueData   = @("010004806400000070000000000000001400000002005000030000000000180003000f00010200000000000520000000200200000000180003000f00010200000000000520000000250200000000180003000f0001020000000000052000000027020000010100000000000512000000010100000000000512000000")\n            ValueType   = "Binary"\n        }\n
Run Code Online (Sandbox Code Playgroud)\n\n

但查看应用时的日志,它似乎将值转换为十进制,导致无效条目:

\n\n
\'HKLM:\\SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\DefaultSecurity\\SrvsvcSha\nreAdminConnect\' to \'(1, 0, 4, 128, 100, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 20,\n0, 0, 0, 2, 0, 80, 0, 3, 0, 0, 0, 0, 0, 24, 0, 3, …
Run Code Online (Sandbox Code Playgroud)

powershell windows-registry dsc

2
推荐指数
1
解决办法
2098
查看次数

如何使用 Powershell 安全擦除驱动器?

Powershell 是否有内置方法来安全擦除磁盘?我所说的安全擦除是指将随机数据或全零写入整个磁盘。我所说的磁盘是指整个物理磁盘,而不是单个文件、已安装的卷或文件系统。

我找到了Clear-Disk,但这似乎只是从分区表中擦除卷信息。

我知道有第三方实用程序,微软自己的diskpart clean可以做到这一点,哎呀,人们甚至可以进入Windows 上的 Linux并使用shred 或 dd来让数据小憩一下......

纯普通的 Powershell能做到吗?(无需诉诸复杂的脚本或外部库调用)

windows powershell hard-drive secure-delete

2
推荐指数
1
解决办法
9184
查看次数

限制 Windows 事件日志大小的正确方法是什么?

我正在寻找使用 PowerShell 或命令行脚本限制 Windows 事件日志大小的最佳方法。我想在应用程序安装期间运行此脚本,以增加安装程序部署的日志的限制。

到目前为止我尝试过使用 power shell 的 limit event log 命令,Limit-EventLog -LogName "logName" -MaximumSize xxMB但是该命令找不到日志。

接下来,我尝试使用安装程序添加“File”和“MaxSize”注册表项:我创建了一个与下的事件日志名称匹配的键SYSTEM\CurrentControlSet\Services\EventLog、名称为“File”的字符串值、数据、日志文件的完整路径,一个名为“MaxSize”的双字值以及我想要设置最大大小的数据值(以字节为单位)。这似乎有效,但是这使得日志以一种有趣的方式显示在事件查看器中。

在此输入图像描述

我还注意到最大日志大小可以直接从事件查看器更改,并且此更改根本不会反映在注册表中。例如,事件日志“Microsoft-Windows-TaskScheduler/Operational”的大小限制为 10MB,但“SYSTEM\CurrentControlSet\Services\EventLog”下没有相应的注册表项

我正在寻找一个能让我获得相同效果的脚本。

scripting powershell windows-event-log

2
推荐指数
1
解决办法
3213
查看次数

为什么即使安装了 RSAT 也找不到 GroupPolicy 模块?

我正在尝试使用 Get-GPO PowerShell 模块。所以我先安装了RSAT,但仍然缺少GroupPolicy模块:

PS C:\Users\admin\Desktop> Install-WindowsFeature RSAT

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             NoChangeNeeded {}


PS C:\Users\admin\Desktop> Import-Module grouppolicy
Import-Module : The specified module 'grouppolicy' was not loaded because no valid module file was found in any module
directory.
At line:1 char:1
+ Import-Module grouppolicy
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (grouppolicy:String) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

PS C:\Users\admin\Desktop>
Run Code Online (Sandbox Code Playgroud)

如何安装组策略模块?

windows powershell group-policy rsat

2
推荐指数
1
解决办法
4331
查看次数

如何通过Powershell获取所有已安装软件的完整列表?

我试图弄清楚如何在 Windows 10 上的 Powershell 中查看所有已安装软件的版本号。我找到了一个示例,但是当我将生成的列表与“控制面板”>“卸载程序”中的内容进行比较时,它似乎不完整。例如,查询输出中缺少 Google Chrome。知道为什么吗?我对 Powershell 的经验很少,所以也许有一些显而易见的事情?

Get-WMIObject -Query "SELECT * FROM Win32_Product" |FT

Chrome 确实已安装,但未显示在 PS 输出中: 在此输入图像描述

windows powershell

2
推荐指数
1
解决办法
9450
查看次数

GPO 列表

如何远程获取在 Win2k8 环境中的机器上应用的 GPO 列表?

我更喜欢 powershell 解决方案,但任何事情都会有所帮助。

powershell group-policy

1
推荐指数
1
解决办法
6564
查看次数

Windows 将/何时将包含 Powershell?

有谁知道 Windows 服务器和/或 Windows 7 标准是否/何时将包含 powershell?在我花时间学习它之前,我想知道这将成为 Windows 标准。

windows powershell

1
推荐指数
1
解决办法
219
查看次数

标准化单一的 Windows 脚本语言

我不太确定这在 StackOverflow 上是否会更好,如果您认为它在那里更合适,请随意移动它。

无论如何,问题...

情况
我们目前有大量的 VBScript、DOS 批处理文件和少数 PowerShell 脚本在业务中执行各种任务。

任务范围从确定谁通过 IP 登录到特定机器到相当复杂的文本处理和数据库查询 (SQL Server 2005/2008)

VbScript 确实不是一种很好的语言,尽管它确实有很好的调试支持,PowerShell 好多了,但是(免费)调试支持非常初级,关于批处理文件的说法越少越好

问题
不想开始一场激烈的战争(请客观评论!)我想标准化单一脚本语言,要求是:-

  • 必须在 Windows 上玩得很好
  • 良好的调试支持(与 Visual Studio 或 Eclipse 一样好的东西会很完美,我会选择与当前的 VBScript 调试器一样好的东西)
  • 良好的异常管理
  • 良好的内存管理(垃圾收集)
  • 对连接数据库的良好支持(SQL Server)
  • COM 支持将是一个优势
  • 最好是轻装(或不装),这样我们就可以把它放在服务器上而不会破坏任何东西
  • 性能不是关键,这些大多是隔夜工作
  • Easy(ish) 为一家主要使用 C#/Java/VBScript/VBA 的公司学习

我对你的想法/建议很感兴趣

scripting powershell ms-dos vbscript

1
推荐指数
1
解决办法
298
查看次数

PowerShell:将一个 OU 的所有 AD 用户复制到另一个 OU

我正在尝试将 OU“A”的所有用户复制到 OU“B”。我的 PowerShell 拍摄是

$sourceEntry = [ADSI]"LDAP://OU=A,DC=demo,DC=com"
$targetEntry = [ADSI]"LDAP://OU=B,DC=demo,DC=com"

$searcher = New-Object DirectoryServices.DirectorySearcher($sourceEntry)
$searcher.Filter = "(objectClass=user)"
$results = $searcher.FindAll()

foreach($result in $results) {
    $user = $result.GetDirectoryEntry()
    $user.CopyTo($targetEntry)
}
Run Code Online (Sandbox Code Playgroud)

我的问题是, $user 似乎缺少我尝试调用的 CopyTo 方法。据我了解 PowerShell,$user 是 System.DirectoryServices.DirectoryEntry 类型的 .NET 对象……在 Visual Studio 中我找到了 CopyTo 方法……在 PowerShell 中我没有找到任何方法,只是属性。

我刚开始使用 PowerShell,所以请帮忙!

powershell active-directory .net

1
推荐指数
1
解决办法
3472
查看次数

以编程方式将 Windows 7 机器加入域的“正确”方式

以编程方式将 Windows 7 机器加入域的首选方法是什么?

我想编写脚本,以便在启动新映像的机器时加入域。(我不想使用 Sysprep 来做这件事,因为我想同时运行一些其他检查。)

据我所知,我可以使用 NetDom,也可以使用 Powershell 中的计算机添加。

不过,这两个理论上都意味着我必须在图像上安装“额外的东西” - 要么 RSAT 使用 netdom(或者我可以手动复制该命令)或用于计算机添加的 AD cmdlet。

任何人都有这些经验,或者哪个是“更好”的方式?我真的不想让最终用户在他们的机器上使用管理工具。

提前致谢,

powershell active-directory

1
推荐指数
1
解决办法
5382
查看次数