2016-09-14 5 views
0

Код:Как отлаживать «Термин« X »не распознается как имя командлета, функции, файла сценария или операционной программы»?

G$Folders = Get-childItem C:\permissiontest\ 
$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit 
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::InheritOnly 
$objType = [System.Security.AccessControl.AccessControlType]::Allow 

foreach ($TempFolder in $Folders) 
{ 
echo "Loop Iteration" 
$Folder = $TempFolder.FullName 

$acl = Get-Acl $Folder 
$permission = "MRGROUP\ro","Read", $InheritanceFlag, $PropagationFlag, $objType 
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission 

$acl.SetAccessRule($accessRule) 
Set-Acl $Folder $acl 
} 

Ошибка:

G$Folders : The term 'G$Folders' is not recognized as the name of a cmdlet, function, script file, or 
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct 
and try again. 
At C:\script\aclper.ps1:1 char:1 
+ G$Folders = Get-childItem C:\permissiontest\ 
+ ~~~~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (G$Folders:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 
+1

Ну 'G $ Folders' не является командой. Что вы ожидаете от 'G $ name'? Предположительно, избавиться от G и сделать его '$ Folders =' в первой строке. – TessellatingHeckler

+0

Добро пожаловать в StackOverflow. Если вы хотите, чтобы люди помогали, вы должны, по крайней мере, приложить некоторые усилия в свой вопрос. Вы буквально свалили свой скрипт и ошибку, без контекста. Вы даже не нашли времени для его форматирования (что я только что сделал для вас). –

ответ

1

Заменить:

G$Folders = Get-childItem C:\permissiontest\ 

с:

$Folders = Get-childItem C:\permissiontest\ 

Это позволит избавиться от этой ошибки

+0

Большое вам спасибо, и это сработало успешно. Как насчет того, хотел ли я, чтобы это применительно к родительской папке и все еще содержало вложенные папки и файлы? – mkbell

+0

Helo, см. Ниже сообщение об ошибке после того, как я попытаюсь выполнить его на сервере. rror capture Вызов «SetAccessRule» с аргументом «1»: «Никакие флаги не могут быть установлены. Имя параметра: inheritanceFlags« В C: \ temp \ aclper.ps1: 15 char: 19 + $ acl. SetAccessRule <<<< ($ accessRule) + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException – mkbell

+0

Проблема заключается в inheritanceFlags, так что смотрим на строку 2, где вы определяете, что похоже, есть еще одна опечатка -bor, вероятно, будет или – BenH

Смежные вопросы

 Смежные вопросы