标签: powershell

使用 PowerShell 从 ACL 中完全删除用户

我希望使用 PowerShell 删除用户的文件夹权限。我找到了很多有关如何删除用户权限的示例,但实际上我想完全删除用户。

相当于在 Windows 资源管理器中执行以下操作: 1. 右键单击​​文件夹并选择属性。2. 单击“安全”选项卡 3. 单击“编辑” 4. 突出显示用户或组。5. 单击“删除”

我试图在 PowerShell 中模仿“删除”的点击操作。

提前致谢。

powershell access-control-list

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

如何调试启动期间通过 GPO 执行的 PowerShell 脚本?

我有一个 Powershell 脚本,它通过 Windows 包管理器Chocolatey安装和更新软件。

如果我以用户身份执行 PS 脚本,一切都很好。因此,必须存在另一个问题,例如限制执行策略(通过 GPO 设置为不受限制)。

如何获取 Powershell 的输出?我正在使用 Start-Transcript,但我无法在任何地方找到输出文件,如果我指定路径,它不会创建日志文件...

Powershell 脚本在启动期间作为计算机 GPO 执行。

还有其他我没有想到的调试选项吗?

windows powershell active-directory group-policy

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

为什么我无法在推送模式下使用安装在用户模块路径中的模块中的 DSC 资源?

我有一个 Powershell DSC 自定义资源,嵌入在模块中。如果您想查看完整的代码,可以在这里找到,但这可能不是必需的;我的问题不在于(我认为)我编写的代码,而在于如何访问它。

就我而言,我使用的是 DSC 推送模式。我使用一个普通的 Powershell 脚本来安装所需的模块、编译配置并启动它。在该脚本中,我将模块的位置添加到$env:PSModulePath. 完成此操作后,我可以看到该模块并将其导入我的交互式 shell 中,如下所示:

PS> Get-Module -ListAvailable | Where-Object -Property Name -eq cWinTrialLab | Import-Module
PS> Get-DscResource -Module cWinTrialLab

ImplementedAs   Name                      ModuleName                     Version    Properties
-------------   ----                      ----------                     -------    ----------
PowerShell      cWtlShortcut              cWinTrialLab                   0.0.1      {Ensure, ShortcutPath, TargetPath, DependsOn...}
Run Code Online (Sandbox Code Playgroud)

所以我创建一个测试配置文件:

Configuration TestConfig {

    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName cWinTrialLab

    Node localhost {

        cWtlShortcut "TestShortcut" {
            Ensure = "Present"
            ShortcutPath = "$env:USERPROFILE\Desktop\TestShortcut.lnk"
            TargetPath = "C:\Windows\system32\cmd.exe"
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用它:

PS> . …
Run Code Online (Sandbox Code Playgroud)

powershell dsc

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

在 Windows 上以编程方式将 ODBC DSN 添加到 ODBC 管理器时出现问题

我正在尝试自动化一些配置,作为其中的一部分,我们需要通过脚本添加 ODBC DSN。我尝试使用的驱动程序是 Cloudera Impala ODBC Connector,从此处下载。将运行此程序的所有计算机都将运行 Windows,其中大多数是 Windows 8.1 或 10。我已在 Windows 7(如果可能)和 Windows 10 上测试了以下所有内容,结果相同。我可以在这台机器上手动创建 DSN,因此驱动程序似乎已正确安装。我还使用用户 DSN 和系统 DSN 尝试了所有这些,但没有成功。

根据here,有三种方法可以做到这一点。第一个是直接扰乱注册表,如果可能的话我想避免这种情况。

第二种是使用 odbcconf。问题是,当我在 Windows 7 和 Windows 10 上运行以下命令时,它会出现 ODBC 管理器的配置窗口,但我指定的值均未填写。如果我为 SQL Server 创建 DSN,则此然而,确实有效,所以它似乎是特定于驱动程序的。我已经仔细检查过我的设置是否正确,但甚至连名称都没有设置好。请参阅下面的屏幕截图了解其外观。

odbcconf CONFIGSYSDSN "Cloudera ODBC Driver for Impala" "DSN=Testing|Server=server"
Run Code Online (Sandbox Code Playgroud)

打开的窗口的屏幕截图

第三种是使用Powershell CmdLet、Add-OdbcDsn。当我对 SQL Server 或 Cloudera Impala 运行以下命令时,它只是挂起,甚至在 10 分钟后也没有返回。Powershell 的资源使用率基本上为 0,并且我没有看到系统上有任何活动。ODBC 管理器中未显示 DSN。

Add-OdbcDsn -Name "testing" -Driver "SQL Server" -DsnType "System"
Run Code Online (Sandbox Code Playgroud)

关于如何解决这两个问题以便我可以继续前进有什么想法吗?

windows powershell odbc hadoop

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

什么是绑定状态为 0.0.0.0 的套接字

我知道 0.0.0.0 上的监听套接字正在监听所有 IPv4 接口。但如果我们在 powershell 中检查,我们也会在 0.0.0.0 上看到很多“绑定”库存Get-NetTCPConnection。全部位于高端口号 (63000+) 上,本地和远程地址均为 0.0.0.0,远程端口为 0。

这可能是什么类型的插座?我们在 Windows Web 服务器 (2016) 上看到了这一点,该服务器为许多网站 (IIS) 提供服务。该服务器还托管 ASP.NET 状态服务器,也可以从同一网络中的另一台服务器访问该服务器。

当这些站点上有大约 50-100 个活跃用户时,大约有 1000 个套接字处于打开状态。当活动增多时,这些套接字的数量也会增加。

powershell socket windows-server-2016

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

安全配置更新后,Powershell 无法访问包/“NuGet”包提供程序

我使用 mof / dsc 配置更新了服务器,本质上更改了各种权限/注册表项以确保安全合规性。这在某种程度上是自动生成的,我确实有一个配置的所有内容的列表,但它有点难以阅读并且不太清楚。

在此过程之后,powershell 无法更新新包或设置其默认存储库。

我不认为这是 NuGet 特有的东西,我的预感是它与某种更基本的文件权限有关。据我所知,NuGet 已安装在我的系统上,我知道它是在应用此配置之前安装的,并且我所知道的内容并未被删除。

我已经仔细检查了工作服务器,并且 NuGet .dll 上的权限看起来相同。

下面是一个错误示例:

PS C:\Windows\system32> Register-PSRepository -Default
PackageManagement\Import-PackageProvider : No match was found for the specified search criteria and provider name
'NuGet'. Try 'Get-PackageProvider -ListAvailable' to see if the provider exists on the system.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7302 char:25
+ ...     $null = PackageManagement\Import-PackageProvider -Name $script:Nu ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (NuGet:String) [Import-PackageProvider], Exception
    + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.ImportPackageProv
   ider


NuGet provider is required to continue
PowerShellGet …
Run Code Online (Sandbox Code Playgroud)

windows powershell windows-server-2012-r2

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

笔记本电脑上的 PowerShell 运行速度极慢

我们有一组运行 Windows 11 的ThinkPad X1,它们在使用 PowerShell(确切地说是 .NET Core 7.2.2)时表现出相同的症状。

配置文件加载非常慢(Chocolatey 的模块显示加载时间超过 2000 毫秒,并且已验证 Chocolatey 不是问题所在)和整体响应速度(例如命令完成和 shell 再次准备就绪之间至少需要一秒钟)。

除了(不相关?)智能卡错误(这没有多大意义,因为除了 4G-LTE 调制解调器之外,这些机器上没有卡设备),事件查看器为空。

Smart Card Reader 'Microsoft UICC ISO Reader 89946827 1' rejected IOCTL TRANSMIT: Access is denied.  If this error persists, your smart card or reader may not be functioning correctly.

Command Header: 00 a4 04 00
Run Code Online (Sandbox Code Playgroud)

启动它并-NoProfile没有改变任何东西,重新安装 PowerShell Core 也没有改变。研究错误也没有给出答案。

有没有办法让PowerShell恢复正常速度?

windows powershell laptop

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

Powershell:如何使用 Windows 服务从文本文件读取安全字符串

我使用 Powershell 将 vSphere 环境的凭据保存到文本文件中ConvertFrom-SecureString。我想使用以下命令在我的 powershell 脚本中使用此凭据:

$password4host = get-content C:\shutdown\HostsCred.txt | convertto-securestring

如果我想通过服务执行 powershell 脚本,我会收到无法从文本文件中读取凭据的错误。这似乎属于这样的事实:将安全字符串保存在文本文件中与将这些凭据保存到文本文件的用户绑定在一起。只有用户自己才能解密凭证。

代码片段:

$time = ( get-date ).ToString('HH-mm-ss')
$date = ( get-date ).ToString('dd-MM-yyyy')
$logfile = New-Item -type file "C:\shutdown\ShutdownLog-$date-$time.txt" -Force
Import-Module -Name VMware.*
# Some variables
$vcenter = "10.10.10.10"
$username = "fakeuser@vsphere.local"
$username4host = "fakeuser"
$cluster = "ESXi-Cluster"
$datacenter = "Datacenter"
$vCenterVMName = "VMware vCenter Server" #Name of vCenter VM
$StarWindVM1 = "Starwind-VM" #Name of first StarWind VM
$StarWindVM2 = "Starwind-VM (1)" #Name of …
Run Code Online (Sandbox Code Playgroud)

windows powershell service credentials

5
推荐指数
0
解决办法
212
查看次数

有没有办法让 PowerShell 2 的远程处理功能在 Windows XP 机器之间工作?

PowerShell 2.0具有一些超级时髦的远程处理功能。但是,我不清楚它们是否可以在 Windows XP 机器上/之间使用,或者您是否需要 Windows Vista 或 Windows 7。

这是我所拥有的:

  • 一对安装了 SP3 和.NET 3.5的 Windows XP MCE 机器。

  • 两者都安装了 PowerShell 2.0 CTP3。

  • WS-Management v1.1 安装在两者上(因为 2.0 似乎不适用于 Windows XP?)

有了所有这些,“启用-PSRemoting”仍然让我犯了这个错误:

Enable-PSSessionConfiguration :此计算机未启用或不支持 Windows PowerShell 远程处理功能。这可能是因为您没有安装正确版本的 WS-Management,或者此版本的 Windows 当前不支持远程处理。

通常,此时我的回答是“好吧,我想是时候下载 Windows 7 RC”了,但是我已经看到了足够多的关于人们在 Windows XP 中进出远程处理的模糊评论,这让我觉得这是可能的.

我怎样才能让它发挥作用?

windows powershell windows-xp remoting

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

如何使用 PowerShell 使用 SQL 身份验证登录

我正在尝试使用基于 SQL 的身份验证,而不是 Windows 集成安全性,通过 SQL Server Powershell Cmdlet(不是 ADO.NET)进行连接。

任何人都知道用于此的格式?

  • 服务器: foo
  • 实例:默认
  • 用户名:荷马
  • 密码:simponsrock

编辑:
我可以使用 SQL Server Management Studio 访问此 SQL-cmdlet 路径。

这样做时,路径是:
SQLSERVER:\SQL\foo\DEFAULT+homer

问题是我无法set-location通过 PowerShell 到达此路径

powershell sql-server-2008

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