标签: powershell

如何设置 ExecutionPolicy:拒绝访问注册表项

我正在以管理员身份运行 Windows Server 2008,我尝试将 ExecutionPolicy 设置为 PowerShell v2 的 Remotesigned,如下所示:

Set-ExecutionPolicy RemoteSigned
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

Set-ExecutionPolicy : Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft
.PowerShell' is denied.
At line:1 char:20
+ Set-ExecutionPolicy <<<<  RemoteSigned
    + CategoryInfo          : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyComma
   nd
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

powershell windows-server-2008

23
推荐指数
2
解决办法
8万
查看次数

如何覆盖 Powershell 中的默认目录别名?

当我在 Powershell 中输入 dir 时,我想看到彩色的文件名。所以,我从这里Set-ChildItemColor函数添加到我的配置文件中。我还在配置文件的末尾添加了这一行来覆盖 dir 别名:

Set-Alias dir Get-ChildItemColor
Run Code Online (Sandbox Code Playgroud)

现在,当我打开 Powershell 时,出现此错误:

Set-Alias : The AllScope option cannot be removed from the alias 'dir'.
At C:\Users\joe\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1:82
char:10
+ Set-Alias <<<<  dir Get-ChildItemColor
    + CategoryInfo          : WriteError: (dir:String) [Set-Alias], SessionStateUna
   uthorizedAccessException
    + FullyQualifiedErrorId : AliasAllScopeOptionCannotBeRemoved,Microsoft.PowerShe
   ll.Commands.SetAliasCommand
Run Code Online (Sandbox Code Playgroud)

这是什么AllScope?如何删除该选项以获得彩色目录?

powershell alias

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

如何将 vhd 转换为 wim 文件?

我刚刚设置并系统准备了一个不错的新 VM,现在我需要将它快速转换为 wim,以上传到我的 sccm 服务器。出于某种原因,我无法更改 VM 属性以从 pxe 的旧网卡启动,这就是我通常使用 sccm 捕获图像的方式。VMM 只是立即更改设置,即使它说成功。

无论如何,谷歌的第一页对此很糟糕,除了 MS 网站上的第 3 方 .ps1 脚本,但我使用的是 2012r2,我应该能够在本地执行此操作,对吗?

windows powershell hyper-v dism windows-server-2012-r2

22
推荐指数
1
解决办法
5万
查看次数

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

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

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

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

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

PowerShell 如何为我解决这个问题,让生活重新变得有价值?

windows powershell active-directory home-directory folder-redirection

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

使用 powershell 添加到 IIS 站点的绑定

我正在尝试使用 powershell 控制 IIS 应用程序中的绑定。我想使用脚本创建一个同时包含 http 和 https 绑定的站点。

这是我迄今为止所拥有的:

Param(
    [Parameter(Mandatory=$True,Position=1)]
    [string]$hostname,
    [Parameter(Mandatory=$True,Position=2)]
    [string]$installPath,
    [Parameter(Mandatory=$False,Position=3)]
    [string]$ip
)

Import-Module WebAdministration

$appPoolName =  $hostname + 'Pool'

$port = 80
$hostRecord = $hostname+'.example.com'

$bindings = @{protocol="http";bindingInformation=$ip + ":"+ $port + ":" + $hostRecord}

New-Item IIS:\AppPools\$appPoolName
Set-ItemProperty IIS:\AppPools\$appPoolName managedRuntimeVersion v4.0

New-Item IIS:\Sites\$hostname -Bindings $bindings -PhysicalPath $installPath
Set-ItemProperty IIS:\Sites\$hostname -Name applicationPool -Value $appPoolName
Run Code Online (Sandbox Code Playgroud)

如何将绑定添加到我的$bindings变量/使用其他一些机制来实现我的目标?

powershell

21
推荐指数
2
解决办法
5万
查看次数

Powershell 相当于 Ctrl+R?

在 bash 中,我可以执行Ctrl+R并开始输入命令来搜索我的历史记录。

我如何在powershell中做到这一点?

有没有办法将密钥绑定到类似的东西?

function GH($str) {get-history | select-string $str}
Run Code Online (Sandbox Code Playgroud)

但是我需要重新读取每个字符输入的字符串或删除以输出匹配命令,例如Ctrl+ R

这可能吗?

windows powershell shell powershell-v3.0

21
推荐指数
3
解决办法
8253
查看次数

为什么 Powershell 初始化需要这么长时间?

当我启动 powershell 时,它需要大约 10-15 秒的时间来初始化并给我一个提示。有谁知道当你第一次启动它时它在做什么可能会导致它?这是 XP Pro,2 GB 内存,只有 Outlook 和 Firefox 交互运行,相当直接。

powershell

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

PowerShell 快速入门

您开始采用 Powershell 的最佳方式是什么?

哪些资源、技巧、场景让您快速上手?

powershell

20
推荐指数
3
解决办法
1845
查看次数

如何使用 powershell 创建 Active Directory 用户帐户

我不断地设置需要活动目录帐户的研究和开发环境。由于我们将这些环境放置在孤立的网络中,因此每个环境都需要自己的活动目录。如何使用 powershell 创建新的活动目录帐户。

powershell active-directory

20
推荐指数
3
解决办法
10万
查看次数

在 WINdows Server 2012 和 2012 R2 中没有域的情况下,是否可以单独通过 PowerShell 部署和管理远程桌面服务?

Windows Server 2008 R2 允许在没有域的情况下部署终端服务器(远程桌面服务),并且没有任何域的坚持。这非常有用,特别是对于不需要或不希望任何 ActiveDirectory 或域功能的远程客户端远程管理的服务器的独立虚拟或云部署。

随着 Microsoft 在每个 Windows 版本中进一步限制其技术,这变得越来越困难。使用 Windows Server 2012,如果不在域中,为远程桌面服务配置许可会更加困难,但仍有可能。使用 Windows Server 2012 R2(至少在预览版中),障碍现在非常严重:

  1. Windows Server 2012 R2 中的“添加/删除角色和功能”向导具有特殊的 RDS 部署模式,该模式有一条规则,如果您不在域中,则无法部署。它告诉您首先创建或加入域。这当然与 Active Directory 域控制器不应与终端服务器机器是同一台机器这一事实直接冲突。所以微软的技术与其说是一个云操作系统,不如说是一个不需要节点集群,需要支持我真正想要部署的一台机器。这太恶心了,所以我试图找到一种解决方法。

  2. 但是,如果您跳过该向导并只选中主角色/功能向导中的复选框,您可以部署这些功能,但 UI 不存在配置它们,当您返回到角色向导上的 RDS 配置页面时,当您以本地计算机管理员身份登录时,您会收到一条消息,提示您无法管理远程桌面服务系统,因为尽管您拥有所有可能拥有的管理员权限(在基于工作组的系统中),但 RDS 配置 UI 将不接受这些凭据并让您继续。

简而言之,我的问题是,我还能以某种方式获得以下最终结果:

  • 我需要允许每个系统 10-20 个用户进行 RDS (TS) 会话。
  • 我不需要任何花哨的 RDS 选项,除非微软以某种方式依赖于这些功能的存在。我相信我需要“RDS Session Host”,因为这是“终端服务器”的核心。微软称它是“远程桌面服务客户端的完整 Windows 桌面。
  • 我需要配置许可,以便宽限期不会过期而使我的 RDS 无法运行,所以这可能意味着我需要一种配置 TS CAL 的方法。

如果以上所有这些在技术上都可以通过明智地使用 PowerShell 来完成,那么我什至准备考虑开发我需要执行上述操作的所有 PowerShell 脚本。我不是要别人为我写那个。我要问的是,除了故意破坏 Workgroup 用户的 2012 R2 UI 之外,有没有人知道我上面要做的事情是否存在技术障碍?如果我通过 PowerShell 脚本操作和控制底层技术,它们是否仍然有效?

显然,1 个词是或否的答案对任何人都没有那么有用,所以问题是真的,是或否,为什么?如果答案是肯定的,那么如何。

windows powershell remote-desktop-services

20
推荐指数
2
解决办法
4万
查看次数